coffeescript 多行字符串编译成多行字符串
Posted
技术标签:
【中文标题】coffeescript 多行字符串编译成多行字符串【英文标题】:coffeescript multiline strings compile into multiline strings 【发布时间】:2013-10-23 17:26:35 【问题描述】:这个字符串怎么来的
"answer
to life
the universe
and everything
is
#40+2
"
编译成
" answer to life the universe and everything is " + (40 + 2) + "";
如何强制 coffescript 保持多行(保持字符串插值不变):
"answer \
to life \
the universe \
and everything \
is \
"+(40+2)
【问题讨论】:
【参考方案1】:我同意在定义长字符串时能够保持缩进是很好的。您可以在咖啡脚本中使用字符串添加来实现此效果,就像在 javascript 中一样:
myVeryLongString = 'I can only fit fifty-nine characters into this string ' +
'without exceeding eighty characters on the line, so I use ' +
'string addition to make it a little nicer looking.'
评估为
'I can only fit fifty-nine characters into this string without exceeding eighty characters, so I use string addition to make it a little nicer looking.'
【讨论】:
【参考方案2】:尝试使用heredoc
语法:
myString = """
answer
to life
the universe
and everything
is
#40+2
"""
这会转换成这个 javascript:
var myString;
myString = "answer\nto life\nthe universe\nand everything\nis\n" + (40 + 2);
实际上没有任何意义让它在编译后的 javascript 中以视觉方式出现在换行符上,是吗?
【讨论】:
不,我希望它们在 javascript 中以视觉方式出现在新行上......似乎这几乎是不可能的 @Agzam:你为什么关心生成的 JavaScript 的样子?这些东西不适合人类食用。 是的,这有什么关系? 我正在处理 xml 字符串。手动将现有的javascript代码转换成coffee,并尝试比较结果......而且很难比较 当您将 javascript 转换为 coffeescript 时,生成的编译后的 js 看起来几乎不会一样 - 尝试区分它们是徒劳的。同样将 js 逐字复制到咖啡脚本中通常只会导致糟糕的咖啡脚本。你通常可以用咖啡更优雅地做事。如果您真的想将遗留的 js 转换为集体咖啡(并且不想只使用“适当的”咖啡脚本技术编写它),您可以使用像 js2coffee.org 这样的工具。我不确定这与 XML 字符串有什么关系。以上是关于coffeescript 多行字符串编译成多行字符串的主要内容,如果未能解决你的问题,请参考以下文章
我无法在 Coffeescript 交互模式(REPL)中编写多行代码