Aks*_*hat 1 ruby string concatenation
在PHP中,我们可以快速连接字符串:
$a = "b";
$a .= "c";
Run Code Online (Sandbox Code Playgroud)
返回"bc".我们如何在Ruby中做到这一点?
基本上有两种不同的方式:
连接到位<<(称为"铲"),这相当于调用concat.请注意,与Ruby中的大多数运算符一样,<<是方法调用.
str = "foo"
str << "bar"
str #=> "foobar"
Run Code Online (Sandbox Code Playgroud)连接并分配+=:
str = "foo"
str += "bar"
str #=> "foobar"
Run Code Online (Sandbox Code Playgroud)
值得注意的是,这与以下内容相同:
str = "foo"
str = (str + "bar")
Run Code Online (Sandbox Code Playgroud)
这意味着以这种方式创建一个新对象,而第一种方式则不是,因为对象在适当的位置被修改.
irb(main):001:0> a = "ezcezc"
=> "ezcezc"
irb(main):002:0> a << "erer"
=> "ezcezcerer"
Run Code Online (Sandbox Code Playgroud)
要么
irb(main):003:0> a += "epruneiruv"
=> "ezcezcererepruneiruv"
Run Code Online (Sandbox Code Playgroud)