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

Popular posts from this blog

angularjs - ADAL JS Angular- WebAPI add a new role claim to the token -

php - CakePHP HttpSockets send array of paramms -

node.js - Using Node without global install -