0

我有:

hash = {
  key1:12,
  key2:78
}

我想在这种方法中将哈希转换为单独的参数,例如:

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

1 回答 1

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)
于 2012-10-01T11:06:50.693 回答