通过查看Ruby 1.9.3的文档,Array#<<
和Array#push
都是为了实现在当前数组的末尾追加一个元素而设计的.然而,两者之间似乎存在微妙的差异.
我遇到的一个问题是,*
运算符可用于将整个其他数组的内容附加到当前数组,但只能使用#push
.
a = [1,2,3]
b = [4,5,6]
a.push *b
=> [1,2,3,4,5,6]
try 使用#<<
会产生各种错误,这取决于它是否与点运算符和/或括号一起使用.
为什么#<<
和#push
不一样?一个不是另一个的别名吗?