私は配列で周りのビットを再生し、トラブル次のコードを理解する上で自分自身を発見されている:<<と+ =の違いは何ですか?
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
すべての配列が同じではないのはなぜですか?
だからあなたのポイント:
ので、
+=
動作を変更するためには、1が+
方法を変更することがあります。とは、単に書き込みの省略形ですたとえ2つの配列の内容が同じであっても、second_arrayに対して、新しい配列が作成され、それがthird_arrayと等しくないということですか? – nzs
その@codedadはまだ答えられていません!誰もがこれを理解していますか? – rubybrah
second_arrayはthird_arrayと等しくなりますが(新しいオブジェクトを作成した)、元の例でこれを示しています。 first_arrayはいずれも –