Ruby 方法定义以括号开始,可以';我不明白它的用处

Ruby 方法定义以括号开始,可以';我不明白它的用处,ruby,Ruby,在Ruby中,我看到的方法定义如下: def [](param) # do stuff end 这个方法声明是什么意思?它是如何工作的?什么时候使用?如何用实例对象调用这种方法?您读过吗?这会让你对那件事有所了解 [1,2].[](1) # => 2 | | ---------> <--------- method name argument [1,2].[](1)#=>2 | | --------->它是方法的名称,[]。您可能已经知

在Ruby中,我看到的方法定义如下:

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”在编程中的含义完全不同。您应该小心。谢谢您现在更新;)