Ruby哈希到方法参数

时间:2012-10-01 11:00:25

标签: ruby

我有:

hash = {
  key1:12,
  key2:78
}

我想在这个方法中将hash转换为单独的参数,如:

SomeClass.method(key1:12, key2:78)

1 个答案:

答案 0 :(得分:2)

Ruby没有像Objective-C这样的命名参数,但是你可以通过Hash来模拟它。 在Ruby 1.9中,考虑到新的Hash语法,这甚至更好。

SomeClass.some_method(key1:12, key2:78)

基本上意味着some_method接受哈希作为参数

def SomeClass
  def some_method(args)
    p(args)
  end
end

然后,如果你打电话

SomeClass.some_method(key1: 12, key2: 78)

实际上意味着

SomeClass.some_method({ key1: 12, key2: 78 })

所以它相当于传递哈希

hash = {
  key1: 12,
  key2: 78,
}

SomeClass.some_method(hash)