4
与えられたコンテキスト内で文字列補間を適用できるマクロf
はありますか?与えられたコンテキスト内で文字列補間を行う方法は?
@f("abc$x", x=3) == "abc3"
それとも機能g
g("abc\$x", x=3)
与えられたコンテキスト内で文字列補間を適用できるマクロf
はありますか?与えられたコンテキスト内で文字列補間を行う方法は?
@f("abc$x", x=3) == "abc3"
それとも機能g
g("abc\$x", x=3)
あなたはlet
ブロックで新しいコンテキストを導入することができます。ここでないマクロであること:
macro f(s, args...)
args = [:($(esc(a.args[1])) = $(esc(a.args[2]))) for a in args]
quote
let $(args...)
$(esc(s))
end
end
end
z = 5
x = 1
@f("abc$x, $(2y), $z", x=3, y = 2x)
# "abc3, 12, 5"
注y = 2x
、すなわち、x=1
に発呼者の範囲にx
を参照するであろう機能に差。だから私はこれがあなたが必要とするものかどうかは分かりません。