Ruby keyword as named hash parameter -
is possible access hash holding keyword arguments using new ruby 2.0 syntax?
class list::node attr_accessor :data, :next def initialize data: nil, next: nil self.data = data self.next = next # error! end end
old syntax works fine:
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 -----
i realize next
reserved word i'm guessing keyword attributes stored internally in hash , i'm wondering whether it's possible access it, e.g. via self.args
, self.parameters
, self.options
, etc.
this work:
class list::node attr_accessor :data, :next def initialize data: nil, _next: nil self.data = data self.next = _next end end
next
ruby reserved word. use names not ruby's reserved keyword.
edit: yes, possible, not idea.
class list::node attr_accessor :data, :next def initialize data: nil, next: nil self.data = data self.next = binding.local_variable_get(:next) end end p list::node.new.next # nil
look local_variable_get
.
Comments
Post a Comment