"foobar" 我不确定为什么要连接字符串而不是给出语法错误。 我很好奇这是否是预期的行为,以及它是否是解析器负责争吵的东西(两个没-6ren">
gpt4 book ai didi

ruby - 为什么用空格分隔的两个字符串在 Ruby 中连接?

转载 作者:数据小太阳 更新时间:2023-10-29 06:22:22 25 4
gpt4 key购买 nike

为什么这在 Ruby 中有效:

"foo" "bar"
# => "foobar"

我不确定为什么要连接字符串而不是给出语法错误。

我很好奇这是否是预期的行为,以及它是否是解析器负责争吵的东西(两个没有运算符的字符串被认为是一个字符串)或者语言定义本身正在指定这种行为(隐式连接)。

最佳答案

在 C 和 C++ 中,string literals彼此相邻are concatenated .由于这些语言影响了 Ruby,我猜它是从那里继承的。

它现在用 Ruby 记录:参见 this answerthis page in the Ruby repo其中指出:

Adjacent string literals are automatically concatenated by the interpreter:

"con" "cat" "en" "at" "ion" #=> "concatenation"
"This string contains "\
"no newlines." #=> "This string contains no newlines."

Any combination of adjacent single-quote, double-quote, percent strings will be concatenated as long as a percent-string is not last.

%q{a} 'b' "c" #=> "abc"
"a" 'b' %q{c} #=> NameError: uninitialized constant q

关于ruby - 为什么用空格分隔的两个字符串在 Ruby 中连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23811203/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com