6

Ruby では、メソッドの定義は次のようになります。

def [](param)
   # do stuff
end

このメソッド宣言はどういう意味ですか? それはどのように機能しますか?いつ使用するのですか?そして、この種のメソッドをインスタンス オブジェクトで呼び出す方法は?

4

3 に答える 3

8

メソッドの名前です[]。または. Array#[]_ Hash#[]クラスでは、そのようなメソッドも定義できます。それが何をするか - それはあなた次第です。

class Foo
  def [](param)
    # body
  end
end

f = Foo.new
f[:some_value]
于 2013-09-01T20:35:20.427 に答える
2

メソッドの名前が " []" であることを意味します。他のメソッドと同じように呼び出します。

a = ['foo', 'bar', 'baz']
a.[](1)    # => 'bar'

さらに、この名前のメソッドについては、次のように呼び出すこともできます

a[1]       # => 'bar'
于 2013-09-01T20:36:17.187 に答える
0

このArray#[]を読みましたか? それはあなたにそれについてのいくつかのアイデアを与えるでしょう..

   [1,2].[](1) # => 2
         |  |
--------->  <---------
method name  argument
于 2013-09-01T20:33:47.287 に答える