我们最近决定在我的工作中使用红宝石风格指南。命令之一是,任何行都不能超过80个字符。由于这是一个Rails项目,所以我们通常使用的字符串会长一些-即“ 用户X希望向您发送有关Thing Y的消息 ”,但这些字符串并不总是符合80个字符的样式限制。
我了解通过三种方式使长字符串跨越多行:
- 赫雷多克
- %Q {}
- 实际的字符串连接。
但是,所有这些情况最终都需要花费更多的计算周期,这似乎很愚蠢。字符串连接很明显,但是for HEREDOC
和%Q
我必须通过类似来删除换行符.gsub(/\n$/, '')
。
有没有一种纯粹的语法方式可以做到这一点,就等于将整个字符串放在一行上?显然,目标是不花费任何额外的周期,仅仅是因为我希望我的代码更具可读性。(是的,我意识到您必须进行很多折衷……但是对于字符串长度,这似乎很愚蠢。)
更新:反斜杠并不是我想要的,因为您丢失了缩进,这实际上会影响样式/可读性。
例:
if foo
string = "this is a \
string that spans lines"
end
我发现以上内容有点难以阅读。
编辑:我在下面添加了一个答案;三年后,我们现在有了曲折的heredoc。
\n
换行符。最佳答案并不能保留它们,而您的答案却可以。这个问题说“不删除换行符”,但是描述中说“ [我必须删除换行符。”