首页 > 解决方案 > 在 Ruby 中,用反斜杠分割字符串是否表示隐式连接?

问题描述

考虑在 Ruby 中按如下方式划分字符串:

"Some content "\
"and some more "\
"and the final line."

以上是否创建了三个 String 对象并将它们连接在一起?或者 Ruby 是否将其视为一个字符串,只是为了方便开发人员在视觉上由反斜杠字符分割(也就是说,反斜杠不是操作数/方法)?

另外,是否有以这种方式划分字符串的单词/术语,或者只是另一种连接方式?

标签: rubystringformatconcatenation

解决方案


字符串文字的自动连接

从技术上讲,您正在创建三个字符串文字,然后由解释器自动连接。这在此处记录,其中说:

解释器自动连接相邻的字符串文字。只要百分比字符串不是最后一个,任何相邻的单引号、双引号、百分比字符串的组合都将被连接。

在您的具体示例中,为了自动连接,在每行代码的末尾转义换行符会使它们“相邻”。它忽略了字符串之间的空格,因此以下内容在逻辑上也等同于您的原始示例:

"Some content "'and some more '"and the final line."
#=> "Some content and some more and the final line."

"Some content " "and some more " "and the final line."
#=> "Some content and some more and the final line."

推荐阅读