7

私は配列を少しいじっていましたが、次のコードを理解するのに苦労していることに気付きました:

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

すべての配列が互いに等しくないのはなぜですか?

4

3 に答える 3

3

<<これまでに言及されていないとの最後の違い+=<<、メソッドです。

class Array
  def << other
    # performs self.push( other )
  end
end

一方、+=構文は次のとおりです。

a += b

そして、単に書くための略記です:

a = a + b

したがって、+=動作を変更するには、+メソッドを変更する必要があります。

class Array
  def + other
    # ....
  end
end
于 2013-05-07T21:35:00.867 に答える