Ruby - Diferença entre Array # << e Array # push

Examinando a documentação do Ruby 1.9.3, o Array # << e o Array # push foram projetados para implementar o acréscimo de um elemento ao final do array atual. No entanto, parece haver diferenças sutis entre os dois.

O que eu encontrei é que o operador * pode ser usado para anexar o conteúdo de uma outra matriz inteira à atual, mas apenas com #push.

<code>a = [1,2,3]
b = [4,5,6]

a.push *b
=> [1,2,3,4,5,6]
</code>

A tentativa de usar # << em vez disso, dá vários erros, dependendo se é usado com o operador ponto e / ou parênteses.

Por que # não funciona da mesma maneira #push? Um não é realmente um alias para o outro?

questionAnswers(5)

yourAnswerToTheQuestion