2013-03-08 76 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,否则保持不变。它还应该做什么?