将哈希值作为参数传递给Ruby中的方法
问题描述:
我有一个方法met1,它将哈希值作为参数。将哈希值作为参数传递给Ruby中的方法
例如:met1('abc' => 'xyz')
应该是什么语法时,我定义的方法?它可以是这样的吗?
def met1(options)
puts options
end
我知道上述语法的作品。但是我怎样才能访问met1
里面的单个哈希键和值? (关键是abc
,值是xyz
?)谢谢!
答
那容易
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
答
您的语法无误。只需在你的方法中使用选项['key'](如果'key'是一个字符串)。这是习惯使用符号键,所以在你的榜样:
met1(:abc => 'xyz')
def met1(options)
puts options[:abc]
end
+0
当我这样做,它说未定义的局部变量关键 – user1562464 2012-07-31 09:30:22
+0
如果key是一个字符串,你应该写选项[“关键”]。如果它是一个符号,你应该写选项[:key] – davidrac 2012-07-31 09:32:04
在options.keys工作的第二种方式中,如何在不使用选项[“abc”]的情况下打印值? – user1562464 2012-07-31 09:40:23
通过使用“options.values”,您可以获得这些值。 – 2012-07-31 09:46:58
谢谢你工作! – user1562464 2012-07-31 09:49:51