Ruby - Różnica między Array # << i push Array #

Po przeanalizowaniu dokumentacji Ruby 1.9.3 zarówno Array # <<, jak i push Array # zostały zaprojektowane do implementowania dołączania elementu na końcu bieżącej tablicy. Wydaje się jednak, że istnieją między nimi subtelne różnice.

Napotkam, że operator * może być użyty do dołączenia zawartości całej innej tablicy do bieżącej, ale tylko z #push.

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

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

Próba użycia # << zamiast tego daje różne błędy, w zależności od tego, czy jest używany z operatorem kropki i / lub nawiasami.

Dlaczego # << nie działa tak samo, jak robi to #push? Czy w rzeczywistości nie jest to alias dla drugiego?

questionAnswers(5)

yourAnswerToTheQuestion