字符串连接在ruby中是如何工作的?

字符串连接在ruby中是如何工作的?,ruby,string,space,Ruby,String,Space,下面这行代码如何在ruby中连接字符串 2.1.0 :052 > value = "Kamesh" "Waran" => "KameshWaran" 我知道“+”是String类上的一个方法,它连接传递的字符串。空格(“”)如何成为运算符/方法 有人能详细说明空格(“”)是如何连接字符串的吗?空格不是运算符。这只适用于字符串文字,并且只是文字语法的一部分,就像双引号一样。如果您有两个字符串文本,它们之间只有空格,那么它们将转换为单个字符串。这是一个从更高版本的C中借用的惯例 i

下面这行代码如何在ruby中连接字符串

2.1.0 :052 > value = "Kamesh" "Waran"
 => "KameshWaran" 
我知道“+”是String类上的一个方法,它连接传递的字符串。空格(“”)如何成为运算符/方法


有人能详细说明空格(“”)是如何连接字符串的吗?

空格不是运算符。这只适用于字符串文字,并且只是文字语法的一部分,就像双引号一样。如果您有两个字符串文本,它们之间只有空格,那么它们将转换为单个字符串。这是一个从更高版本的C中借用的惯例

irb(main):001:0> foobar = "foo" "bar"
=> "foobar"
irb(main):002:0> foo="foo"
=> "foo"
irb(main):003:0> bar="bar"
=> "bar"
irb(main):004:0> foo bar
NoMethodError: undefined method `foo' for main:Object
        from (irb):4
        from /usr/local/var/rbenv/versions/2.1.3/bin/irb:11:in `<main>'
irb(main):005:0>
irb(main):001:0>foobar=“foo”“bar”
=>“foobar”
irb(主):002:0>foo=“foo”
=>“foo”
irb(主):003:0>bar=“bar”
=>“巴”
irb(主):004:0>foo bar
NoMethodError:main:对象的未定义方法“foo”
来自(irb):4
from/usr/local/var/rbenv/versions/2.1.3/bin/irb:11:in`'
irb(主要):005:0>

空格不是运算符。这只适用于字符串文字,并且只是文字语法的一部分,就像双引号一样。如果您有两个字符串文本,它们之间只有空格,那么它们将转换为单个字符串。这是一个从更高版本的C中借用的惯例

irb(main):001:0> foobar = "foo" "bar"
=> "foobar"
irb(main):002:0> foo="foo"
=> "foo"
irb(main):003:0> bar="bar"
=> "bar"
irb(main):004:0> foo bar
NoMethodError: undefined method `foo' for main:Object
        from (irb):4
        from /usr/local/var/rbenv/versions/2.1.3/bin/irb:11:in `<main>'
irb(main):005:0>
irb(main):001:0>foobar=“foo”“bar”
=>“foobar”
irb(主):002:0>foo=“foo”
=>“foo”
irb(主):003:0>bar=“bar”
=>“巴”
irb(主):004:0>foo bar
NoMethodError:main:对象的未定义方法“foo”
来自(irb):4
from/usr/local/var/rbenv/versions/2.1.3/bin/irb:11:in`'
irb(主要):005:0>

如果你在这个网站上搜索,你会得到答案

可在以下网址找到:

实现细节可以在Ruby源代码中的parse.y文件中找到 密码具体来说,在这里

Ruby字符串可以是tCHAR(例如?q)、string1(例如“q”、“q”, 或%q{q}),或字符串1串联的递归定义 和字符串本身,这会导致字符串表达式,如“foo” “bar”、“foo”、“bar”或?f“oo”、“bar”被连接


如果你在这个网站上搜索,你会得到答案

可在以下网址找到:

实现细节可以在Ruby源代码中的parse.y文件中找到 密码具体来说,在这里

Ruby字符串可以是tCHAR(例如?q)、string1(例如“q”、“q”, 或%q{q}),或字符串1串联的递归定义 和字符串本身,这会导致字符串表达式,如“foo” “bar”、“foo”、“bar”或?f“oo”、“bar”被连接