在Ruby中将长字符串分成多行而不去掉换行符
在Ruby中将长字符串分成多行而不去掉换行符
我们最近决定在我的工作上使用 Ruby 风格指南。其中一个规则是任何一行都不应超过 80 个字符长度。由于这是一个 Rails 项目,我们经常有一些略长一点的字符串,比如 \"User X wanted to send you a message about Thing Y\",这些字符串并不总是符合 80 个字符长度限制。
我了解有三种方式可以将一个较长的字符串跨越多行:
- HEREDOC
- %Q{}
- 实际的字符串连接。
然而,所有这些情况最终都需要占用更多的计算周期,这似乎有些愚蠢。字符串拼接显然需要更多的计算周期,而对于 HEREDOC
和 %Q
,我需要通过像 .gsub(/\\n$/, \'\')
这样的方式剥离换行符。
是否有一种纯语法的方式来实现这一点,就像整个字符串在一行上那样呢?目标显然是不要花费任何额外的周期,只是因为我希望我的代码稍微更易读一些。(是的,我意识到你经常不得不做出这种抉择...但对于字符串长度,这似乎有些愚蠢。)
更新:
反斜杠并不完全符合我的要求,因为您会失去缩进,这会影响样式/可读性。
例如:
if foo string = "this is a \ string that spans lines" end
我觉得上面的内容有些难以阅读。
编辑:我在下面添加了一个答案;三年后,我们现在有 squiggly heredoc。
admin 更改状态以发布 2023年5月24日