【发布时间】:2012-05-18 08:11:59
【问题描述】:
我们最近决定在我的工作中编写 ruby 样式指南。其中一项法令是任何行不得超过 80 个字符。由于这是一个 Rails 项目,我们的字符串通常会稍长一些 - 即“用户 X 想向您发送有关 Thing Y 的消息”并不总是适合 80 个字符样式限制。
我知道有三种方法可以让长字符串跨越多行:
- HEREDOC
- %Q{}
- 实际的字符串连接。
但是,所有这些情况最终都会花费更多的计算周期,这似乎很愚蠢。字符串连接很明显,但是对于HEREDOC 和%Q,我必须通过.gsub(/\n$/, '') 之类的方式去除换行符。
是否有一种纯粹的语法方式来做到这一点,相当于将整个字符串放在一行上?显然,目标是不要仅仅因为我希望我的代码更具可读性而花费任何额外的周期。 (是的,我意识到你必须做出很多权衡......但是对于字符串长度,这似乎很愚蠢。)
更新: 反斜杠并不是我想要的,因为你失去了缩进,这真的会影响样式/可读性。
例子:
if foo
string = "this is a \
string that spans lines"
end
我觉得上面的内容有点难以阅读。
编辑:我在下面添加了一个答案;三年后,我们现在有了波浪形的heredoc。
【问题讨论】:
-
把这些字符串分解出来可能是值得的。
-
????????目前尚不清楚您是否要保留
\n换行符。最佳答案并没有保留它们 - 但您的答案却保留了它们。问题说“不删除换行符”——但描述说“[...] 我必须删除换行符。”
标签: ruby-on-rails ruby