在Ruby中拆分多行上的长字符串而不剥离换行符

我们最近决定在我的工作中做一个ruby风格的指南。其中一条法令是,任何一行的宽度都不得超过80个字符。因为这是一个Rails项目,所以我们通常会有稍微长一点的字符串,即“用户X想要向您发送关于Y的消息”,但并不总是符合80个字符的样式限制

我知道有三种方法可以使长字符串跨越多行:

  • 埃雷多克
  • %Q{}
  • 实际字符串连接

然而,所有这些情况最终都需要更多的计算周期,这似乎很愚蠢。字符串串联很明显,但是对于herdoc%Q我必须通过类似.gsub(/\n$/,'')的方式去掉换行符

有没有一种纯粹的语法方法可以做到这一点,这相当于将整个字符串放在一行上?显然,我们的目标是,不要仅仅因为我希望我的代码更具可读性而花费任何额外的周期。(是的,我意识到你必须做很多权衡……但对于字符串长度来说,这似乎很愚蠢。)

更新:
反斜杠并不是我想要的,因为你会失去缩进,这确实会影响风格/可读性

例如:

如果是foo
string=“这是一个\
“跨行的字符串”
终止

我觉得上面的内容有点难读

编辑:我在下面添加了一个答案;三年后,我们现在有了蠕动的埃雷多克

也许这就是你要找的

string=“line#1”\
“第2行”\
“第3行”
p字符串#=>“第1行第2行第3行”

发表评论