2012-07-31 64 views
0

我有一个方法met1,它将哈希值作为参数。将哈希值作为参数传递给Ruby中的方法

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

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

def met1(options) 
    puts options 
end 

我知道上述语法的作品。但是我怎样才能访问met1里面的单个哈希键和值? (关键是abc,值是xyz?)谢谢!

回答

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 
+0

在options.keys工作的第二种方式中,如何在不使用选项[“abc”]的情况下打印值? – user1562464 2012-07-31 09:40:23

+1

通过使用“options.values”,您可以获得这些值。 – 2012-07-31 09:46:58

+0

谢谢你工作! – user1562464 2012-07-31 09:49:51

1

您的语法无误。只需在你的方法中使用选项['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

相关问题