在不同的宏之间共享变量
问题描述:
如何访问在另一个宏 中设置的宏中的变量,例如,在不同的宏之间共享变量
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"