可以像这样格式化字符串:
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