Ruby - Diferencia entre Array # << y Array # push

Desde el examen de la documentación de Ruby 1.9.3, tanto Array # << como Array # push fueron diseñados para implementarse agregando un elemento al final de la matriz actual. Sin embargo, parece haber diferencias sutiles entre los dos.

El que encontré es que el operador * se puede usar para agregar el contenido de otra matriz a la actual, pero solo con #push.

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

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

Intentar usar # << en cambio da varios errores, dependiendo de si se usa con el operador de punto y / o paréntesis.

¿Por qué # << no funciona de la misma manera que #push? ¿Uno no es realmente un alias para el otro?

Respuestas a la pregunta(5)

Su respuesta a la pregunta