在不同的宏之间共享变量
Sharing variables between different macros
如何访问在另一个宏中设置的宏中的变量
例如
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"
如何访问在另一个宏中设置的宏中的变量 例如
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"