2013-03-08 79 views

回答

3

您可以使用.fetch如果你不需要存儲價值

hash.fetch(:key, :default) 

或者給哈希PROC。

hash = Hash.new { |hash, key| hash[key] = 'default-value' } 
hash[:a] = 'foo' 
p hash[:b] 
# => 'default-value' 
0

已經討論過你的代碼不起作用的原因,例如, here

根據您的使用情況下,默認值設置爲哈希可能是最合適的解決方案:

foo = {} 
foo.default = true 
1

爲什麼|| =一個散列重新分配一個假值?

因爲這就是它的作用:如果爲false,否則保持不變。它還應該做什麼?