Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby哈希到方法参数_Ruby - Fatal编程技术网

Ruby哈希到方法参数

Ruby哈希到方法参数,ruby,Ruby,我有: 我想在这个方法中将散列转换成单独的参数,如下所示: hash = { key1:12, key2:78 } Ruby没有像Objective-C这样的命名参数,但是您可以通过散列来模拟它。 在Ruby1.9中,考虑到新的哈希语法,这甚至更好 SomeClass.method(key1:12, key2:78) 基本上意味着some\u方法接受散列作为参数 SomeClass.some_method(key1:12, key2:78) 那么如果你打电话 def SomeCla

我有:

我想在这个方法中将散列转换成单独的参数,如下所示:

hash = {
  key1:12,
  key2:78
}

Ruby没有像Objective-C这样的命名参数,但是您可以通过散列来模拟它。 在Ruby1.9中,考虑到新的哈希语法,这甚至更好

SomeClass.method(key1:12, key2:78)
基本上意味着
some\u方法
接受散列作为参数

SomeClass.some_method(key1:12, key2:78)
那么如果你打电话

def SomeClass
  def some_method(args)
    p(args)
  end
end
它实际上意味着

SomeClass.some_method(key1: 12, key2: 78)
所以它相当于传递散列

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

重复:请注意,您正在覆盖现有的
方法
方法。既然Ruby 2.0接受命名参数,我认为这是一个很好的问题。好的,我对新语法感到困惑,但传递哈希似乎是合乎逻辑的。伟大的
hash = {
  key1: 12,
  key2: 78,
}

SomeClass.some_method(hash)