Я прохожу через Программирование Ruby - прагматичное руководство для программистов и наткнулся на этот фрагмент кода:
class SongList
def [](key)
if key.kind_of?(Integer)
return @songs[key]
else
for i in [email protected]
return @songs[i] if key == @songs[i].name
end
end
return nil
end
end
Я не понимаю, как работает метод определения []?
Почему ключ за пределами [], но когда метод вызывается, он находится внутри []?
Может ли ключ быть без круглых скобок?
Я понимаю, что есть намного лучшие способы написать это, и я знаю, как писать свой собственный метод, который работает, но этот метод [] просто сбивает меня с толку... Любая помощь очень ценится, спасибо