次のように文字列をフォーマットすることができます。
text = 'text'
formatted = "Text: #{text}"
次はどうですか?
pattern = "Text: #{text}"
text = 'text'
formatted = ???
次のように文字列をフォーマットすることができます。
text = 'text'
formatted = "Text: #{text}"
次はどうですか?
pattern = "Text: #{text}"
text = 'text'
formatted = ???
Coffeescriptのパターンフォーマットは、coffeescript->javascriptコンパイラの一部です。
それで、
pattern = "Text: #{text}"
即座にコンパイルされます
pattern = "Text: " + text;
それが理由です
pattern = "Text: #{text}"
text = 'text'
「テキストが定義されていません」というエラーがスローされます。
ただし、次のような関数でラップすることができます。
pattern = (text) -> "Text: #{text}"
text = 'text'
formatted = pattern text
またはこのように:
pattern = ({text1, text2, text3}) -> "Text: #{text1}, #{text2} and #{text3}"
text1 = 'text'
text2 = 'awesome text'
text3 = 'another text'
formatted = pattern {text1, text2, text3}
いいえ、文字列補間構文はそのようには機能しません。ただし、これはまったく同じことを実現するためのより良い方法である可能性があります。
pattern = 'Text: #{text}'
text = 'text'
formatted = pattern.replace /#{text}/, text