1

次のように文字列をフォーマットすることができます。

text = 'text'
formatted = "Text: #{text}"

次はどうですか?

pattern = "Text: #{text}"
text = 'text'
formatted = ???
4

2 に答える 2

7

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}
于 2012-11-07T10:33:08.753 に答える
-1

いいえ、文字列補間構文はそのようには機能しません。ただし、これはまったく同じことを実現するためのより良い方法である可能性があります。

pattern = 'Text: #{text}'
text = 'text'
formatted = pattern.replace /#{text}/, text
于 2012-11-07T10:35:50.870 に答える