在 Ruby 中,我看到一个方法的定义是这样的:
def [](param)
# do stuff
end
这个方法声明是什么意思?它是如何工作的?什么时候使用它?以及如何用实例对象调用这种方法?
在 Ruby 中,我看到一个方法的定义是这样的:
def [](param)
# do stuff
end
这个方法声明是什么意思?它是如何工作的?什么时候使用它?以及如何用实例对象调用这种方法?
这是方法的名称,[]
. 您可能已经知道Array#[]
或Hash#[]
。在你的类中,你也可以定义这样的方法。它会做什么——这取决于你。
class Foo
def [](param)
# body
end
end
f = Foo.new
f[:some_value]
这意味着该方法被命名为“ []
”。你可以像任何其他方法一样调用它:
a = ['foo', 'bar', 'baz']
a.[](1) # => 'bar'
此外,对于具有此名称的方法,您还可以将它们称为
a[1] # => 'bar'
你读过这个Array#[]吗?它会给你一些想法。
[1,2].[](1) # => 2
| |
---------> <---------
method name argument