Ruby试图推送哈希(**参数)

时间:2014-10-30 03:52:43

标签: ruby

我尝试将多个[sic]参数添加到哈希并收到此错误:

  

`method':参数数量错误(3表示0)(ArgumentError)

有人可以告诉我如何实现这个/我做错了什么?

class MyClass
  attr_accessor :variable
  def initialize
    @variable = {}
  end
  def method(**parameter)
    parameter.each {|k,v| @variable[k] = v}
  end
end

new_class = MyClass.new
p new_class.method(["key", 1],["house", 2],["key", 3])

1 个答案:

答案 0 :(得分:4)

您可能想要考虑更多惯用的Ruby

class MyClass
  def initialize
    @variable = {}
  end

  def method hash
    @variable.merge! hash
  end
end

然后像这样使用它

foo = MyClass.new
foo.method a: 1, b: 2

最后一行是加油的Ruby for

foo.method({:a => 1, :b => 2})

Hash#merge! docs

相关问题