2013-03-08 2 views

ответ

3

Вы можете использовать .fetch, если вам не нужно хранить значение

hash.fetch(:key, :default) 

Или дайте хэш-процедурный.

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

Причина, по которой ваш код не работает, обсуждался, например. here.

В зависимости от вашего случая использования, установив значение по умолчанию хэш может быть наиболее подходящим решением:

foo = {} 
foo.default = true 
1

Почему || = на хэш переназначить ложное значение?

Потому что это то, что он есть для: назначить, если ложь, иначе оставить в покое. Что еще нужно делать?

Смежные вопросы