-1

要素にアクセスするための独自のメソッドを次のように定義しました。

class Array2
  def [](key)
    if key.kind_of?(Integer)
      @elements[key]
    else
      # ...
    end
  end
end

以前にとして宣言@elementsした場合はArray.new、両方の操作:

list = Array2.new
# ...
puts list[0]
puts list.[](0)

正しく機能します。なぜ最初の操作が受け入れられるのですか?

4

1 に答える 1

3

list[0]と構文はどちらもlist.[](0)まったく同じことを意味します。[]オブジェクトの引数0を使用してメソッドを呼び出しlistます。

于 2012-04-21T02:31:41.447 に答える