访问元素?
我定义我自己的方法来访问元素:如果我以前曾宣布@elements
为Array.new
访问元素?
class Array2
def [](key)
if key.kind_of?(Integer)
@elements[key]
else
# ...
end
end
end
,无论是业务:
list = Array2.new
# ...
puts list[0]
puts list.[](0)
正常工作。为什么第一次手术可以接受?
这两个list[0]
和list.[](0)
语法意思是完全相同的东西。他们使用list
对象上的参数0
调用[]
方法。
但为什么没有“。”在列表[0]考虑我将它定义为一个方法,为什么参数允许在括号之间? – 2012-04-21 02:53:27
@BhubhuHbuhdbus,这是[语法糖](http://en.wikipedia.org/wiki/Syntactic_sugar)。每次Ruby看到''object''都会调用'object。[](...)'。 – rid 2012-04-21 02:55:00
哦,确定清除它。 – 2012-04-21 03:19:09
我不明白这个问题。通过第一次操作,我假设你的意思是'放列表[0]'。为什么不能接受? – sepp2k 2012-04-21 02:30:14
因为我将[]运算符定义为第二个操作。我不明白为什么没有“。”或者为什么参数位于括号的中间。 – 2012-04-21 02:52:42