可以像这样格式化字符串:
text = 'text'
formatted = "Text: #{text}"
以下情况如何?
pattern = "Text: #{text}"
text = 'text'
formatted = ???
答案 0 :(得分: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}
答案 1 :(得分:-1)
不,字符串插值语法不能像那样工作。 这可能是实现完全相同的更好方法:
pattern = 'Text: #{text}'
text = 'text'
formatted = pattern.replace /#{text}/, text