23
的獲得價值我有一個像紅寶石 - 哈希
{:key1 => "value1", :key2 => "value2"}
哈希和我有一個變量k
這將對價值'key1'
或'key2'
。
我想將k
的值存入變量v
。
有沒有什麼辦法可以達到這個目的?用if
或case
?單線解決方案是首選。請幫忙。
的獲得價值我有一個像紅寶石 - 哈希
{:key1 => "value1", :key2 => "value2"}
哈希和我有一個變量k
這將對價值'key1'
或'key2'
。
我想將k
的值存入變量v
。
有沒有什麼辦法可以達到這個目的?用if
或case
?單線解決方案是首選。請幫忙。
將密鑰從字符串轉換爲符號,然後在哈希中進行查找。
hash = {:key1 => "value1", :key2 => "value2"}
k = 'key1'
hash[k.to_sym] # or iow, hash[:key1], which will return "value1"
Rails使用這個類叫做HashWithIndifferentAccess
被證明是在這種情況下非常有用的。我知道你只用Ruby標記了你的問題,但你可以從Rails的源代碼中竊取這個類的實現,以避免字符串到符號和符號在你的代碼庫中字符串轉換。它通過使用符號或字符串作爲關鍵字使值可訪問。
hash = HashWithIndifferentAccess.new({:key1 => "value1", :key2 => "value2"})
hash[:key1] # "value1"
hash['key1'] # "value1"