2012-07-31 65 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

相關問題