将哈希值作为参数传递给Ruby中的方法

时间:2012-07-31 09:25:29

标签: ruby methods hash parameters

我有一个方法met1,它将哈希值作为参数。

例如:met1('abc' => 'xyz')

定义方法时应该是什么语法?它可以是这样的吗?

def met1(options)
  puts options
end

我知道上面的语法有效。但是如何在met1内访问单个哈希键和值? (其中键为abc,值为xyz?)谢谢!

2 个答案:

答案 0 :(得分:1)

您的语法是正确的。只需在您的方法中使用选项[' key'](如果' key'是一个字符串)。按惯例使用符号作为键,因此在您的示例中:

met1(:abc => 'xyz')

def met1(options)
  puts options[:abc]
end

答案 1 :(得分:1)

很容易

met1("abc" => "xyz")

def met1(options)
  puts options
  # with key
  puts options["abc"]
end

我假设您知道选项可能包含哪些键正确?如果没有,

def met1(options)
  puts options.keys # options is the hash you passed it, use it like one
end