数组上#concat和+ =有什么区别?

时间:2014-05-25 18:20:05

标签: ruby arrays concatenation

我想在Ruby中连接两个Arrays。到目前为止,我找到了#concat+=运算符。它们似乎产生了相同的结果,但我想知道它们之间有什么区别。

  • 我在哪里可以找到+=运营商的文档?
  • #concat和在数组上使用+=运算符之间有什么区别?

1 个答案:

答案 0 :(得分:11)

+=会创建一个新的数组对象,concat会改变原始对象

a = [1,2]
a.object_id # => 19388760 
a += [1]
a.object_id # => 18971360 


b = [1,2]
b.object_id # => 18937180 
b.concat [1]
b.object_id # => 18937180 

请注意,object_id的{​​{1}}已更改,而a未更改