0
別のマクロに設定されたマクロ内のvarsにアクセスする方法 異なるマクロ間で変数を共有する
macro foo(arg)
{% SHARED_VAR = arg%}
p {{arg}}
end
macro baz
p {{ SHARED_VAR }}
end
foo("foo")
baz #=> prints "foo"
別のマクロに設定されたマクロ内のvarsにアクセスする方法 異なるマクロ間で変数を共有する
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"
を