如何访问在另一个宏中设置的宏中的变量,例如
macro foo(arg)
{% SHARED_VAR = arg%}
p {{arg}}
end
macro baz
p {{ SHARED_VAR }}
end
foo("foo")
baz #=> prints "foo"
如何访问在另一个宏中设置的宏中的变量,例如
macro foo(arg)
{% SHARED_VAR = arg%}
p {{arg}}
end
macro baz
p {{ SHARED_VAR }}
end
foo("foo")
baz #=> prints "foo"
好吧,这不是该语言的一个特性,而且可能是有充分理由的。
一些替代方案:
改用常量,但你不能用它做编译时的事情:
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"