Я играл вокруг с массивами немного, и оказался в беде понимание следующий код:В чем разница между << и + =?
first_array = []
second_array = []
third_array = [] # I initialized 3 empty arrays
third_array << [1,2,3,4,5,6,7,8,9] # I loaded 1..9 into third_array[0]
puts third_array.size # => 1
first_array << third_array # 1..9 was loaded into first_array[0]
second_array += third_array # 1..9 was loaded into second_array[0]
puts first_array == third_array # false
puts second_array == third_array # true
puts first_array == second_array # false
puts first_array.size # 1
puts second_array.size # 1
puts third_array.size # 1
Что случилось с этим?
second_array += third_array # I have no clue
Почему не все массивы равны друг другу?
Так вашу точку что для second_array создается новый массив, который не равен третьему, даже если содержимое двух массивов одинаково? – nzs
THAT @codedad до сих пор не ответил! кто-нибудь понимает это? – rubybrah
second_array выполняет равенство третьего_аррея (но он создал новый объект), это показывает исходный пример. first_array не равно ни –