如何在宏中访问另一个宏中设置的变量 e.g。
macro foo(arg)
{% SHARED_VAR = arg%}
p {{arg}}
end
macro baz
p {{ SHARED_VAR }}
end
foo("foo")
baz #=> prints "foo"
答案 0 :(得分:3)
嗯,这不是语言的一个特征,可能有充分的理由。
一些替代方案:
改为使用常量,但你不能用它来编译:
macro foo(arg)
SHARED_VAR = {{arg}}
end
macro baz
p SHARED_VAR
end
foo("foo")
baz #=> prints "foo"
或者只是使用附加信息调用另一个宏:
macro foo(arg)
{% shared_var = arg %}
baz({{shared_var}})
p {{arg}}
end
macro baz(arg)
p {{arg}}
end
foo("foo") #=> prints "foo"