【问题标题】:What is the difference between #concat and += on Arrays?数组上的#concat 和 += 有什么区别?
【发布时间】:2014-05-25 18:20:04
【问题描述】:

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

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

【问题讨论】:

  • 请搜索 SO,,, 已经问了很多时间了。
  • @ArupRakshit 我怀疑它与您建议的重复问题相同,即使提供的答案可能相似,问题也不相同
  • 我认为这个答案对这个主题也有很好的信息:stackoverflow.com/a/16428467/810606
  • @bjhaid 是的.. 这个问题也解释了 speed。但也足以知道它们之间的区别..不是吗?
  • @ArupRakshit 问题并不相似,询问一个是否比另一个快以及一个和另一个之间有什么区别是有区别的

标签: ruby arrays concatenation


【解决方案1】:

+= 会创建一个新的数组对象,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 

注意aobject_id 已更改,而bb 未更改

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-11-10
    • 2017-03-25
    • 1970-01-01
    • 2016-08-10
    • 2016-07-19
    • 1970-01-01
    • 1970-01-01
    • 2016-03-31
    相关资源
    最近更新 更多