爲什麼此代碼以這種方式工作?有沒有一種方法可以用這種方式使用bar
完成我想要的? (我知道有替代品做模式相匹配的字符串)串聯匹配的字符串插值
# Elixir 1.3.4
defmodule MyMod do
@foo "abc"
def concatenation_operator_with_interpolation do
bar = "abc"
"#{@foo}::" <> matchworks = "abc::xyz"
IO.puts matchworks # xzy
"#{bar}::" <> matchbroke = "abc::xyz" # cannot invoke remote function String.Chars.to_string/1 inside match
IO.puts matchbroke # never runs
end
end
MyMod.concatenation_operator_with_interpolation
必須與字符串插值有關。我可以用'「#{bar}」=「abc」'重現這一點。 –
'bar =「abc」; size = byte_size(bar); <<^bar :: binary-size(size)>><> matchworks =「abc :: xyz」' – Dogbert
是的,我想知道是否有什麼我可以做的插補工作。以上內容不太簡潔......你知道嗎? –