【发布时间】:2012-04-18 14:53:18
【问题描述】:
我正在浏览Programming Ruby - a pragmatic programmers guide 并偶然发现了这段代码:
class SongList
def [](key)
if key.kind_of?(Integer)
return @songs[key]
else
for i in 0...@songs.length
return @songs[i] if key == @songs[i].name
end
end
return nil
end
end
我不明白定义 [ ] 方法的工作原理?
为什么key在[]外面,但是调用方法的时候却在[]里面?
key 可以不带括号吗?
我意识到有更好的方法来写这个,并且知道如何编写我自己的有效方法,但是这个 [ ] 方法让我感到困惑......非常感谢任何帮助,谢谢
【问题讨论】: