字符串连接如何在ruby中工作? [重复]

问题描述 投票:0回答:2

这个问题在这里已有答案:

以下代码行如何连接ruby中的字符串?

2.1.0 :052 > value = "Kamesh" "Waran"
 => "KameshWaran" 

我理解'+'是String类的一个方法,它连接传递的字符串。空格('')如何成为操作员/方法?

任何人都可以详细说明空格('')如何连接字符串?

ruby string space
2个回答
3
投票

空间不是运营商。这仅适用于字符串文字,并且只是文字语法的一部分,如双引号。如果你有两个字符串文字,但它们之间只有空格,它们会变成一个字符串。这是从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>

1
投票

如果您在本网站上搜索,您将得到答案。

发现于:Why do two strings separated by space concatenate in Ruby?

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

Ruby字符串可以是tCHAR(例如?q),string1(例如“q”,“q”或%q {q}),也可以是string1和字符串本身串联的递归定义,这会产生字符串表达式如“foo”“bar”,“foo”“bar”或?f“oo”'bar'被连接起来。

© www.soinside.com 2019 - 2024. All rights reserved.