Ruby 方法定义以括号开始,可以';我不明白它的用处
在Ruby中,我看到的方法定义如下:Ruby 方法定义以括号开始,可以';我不明白它的用处,ruby,Ruby,在Ruby中,我看到的方法定义如下: def [](param) # do stuff end 这个方法声明是什么意思?它是如何工作的?什么时候使用?如何用实例对象调用这种方法?您读过吗?这会让你对那件事有所了解 [1,2].[](1) # => 2 | | ---------> <--------- method name argument [1,2].[](1)#=>2 | | --------->它是方法的名称,[]。您可能已经知
def [](param)
# do stuff
end
这个方法声明是什么意思?它是如何工作的?什么时候使用?如何用实例对象调用这种方法?您读过吗?这会让你对那件事有所了解
[1,2].[](1) # => 2
| |
---------> <---------
method name argument
[1,2].[](1)#=>2
| |
--------->它是方法的名称,[]
。您可能已经知道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'
这里:有些值是我声明中的参数?是的,它将作为param
在方法体中可用。请看这个,嗯,我很困惑。你是说“它的方法的名称”还是“它是一个/方法的名称”?@Jeffrey:是的,错过了一篇文章。你看,英语是我的第二语言:)[]
被称为括号。术语“hook”在编程中的含义完全不同。您应该小心。谢谢您现在更新;)