Можно ли получить доступ к аргументам ключевого слова для хеша, используя новый синтаксис ruby 2.0?Рубиновое ключевое слово как именованный хеш-параметр
class List::Node
attr_accessor :data, :next
def initialize data: nil, next: nil
self.data = data
self.next = next # ERROR!
end
end
Старый синтаксис работает отлично:
class List::Node
attr_accessor :data, :next
def initialize options = { data: nil, next: nil }
self.data = options[:data]
self.next = options[:next]
end
end
----- EDIT -----
Я понимаю, что next
является зарезервированным словом, но я предполагаю, что атрибуты ключевого слова сохраняются внутренне в хеше, и мне интересно, можно ли получить к нему доступ, например с помощью self.args
, self.parameters
, self.options
и т.д.
Это именно то, что я искал, спасибо! Я никогда не ставил этот код на производство, но я играю с рубином, пытаясь понять его лучше. – makhan