我有一個方法met1,它將哈希值作爲參數。將哈希值作爲參數傳遞給Ruby中的方法
例如:met1('abc' => 'xyz')
應該是什麼語法時,我定義的方法?它可以是這樣的嗎?
def met1(options)
puts options
end
我知道上述語法的作品。但是我怎樣才能訪問met1
裏面的單個哈希鍵和值? (關鍵是abc
,值是xyz
?)謝謝!
我有一個方法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
當我這樣做,它說未定義的局部變量關鍵 – user1562464 2012-07-31 09:30:22
如果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