我定义了自己的方法来访问元素:
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)
正常工作。为什么第一次操作可以接受?
答案 0 :(得分:3)
list[0]
和list.[](0)
语法都意味着完全相同的事情。他们使用[]
对象上的参数0
调用list
方法。