создать хэш, который имеет много ключей, и я хочу, чтобы опустить ключи, которые имеют nil
значения:опуская пустые значения при создании хэша
h = {
:key0 => val0,
:key1 => val1, # I want to include this key only if val1 is not nil
:key2 => val2
}
являются ли какими-либо приятными способами сделать это, кроме
if val1
h = {
:key0 => val0,
:key1 => val1,
:key2 => val2
}
else
h = {
:key0 => val0,
:key2 => val2
}
end
что-то вдоль линий
h = {
:key0 => val0,
:key1 => val1 if val1, # gives an error
:key2 => val2
}
EDIT: спасибо за ответы до сих пор, повторно полезно. Есть ли способ определить хеш-литерал без необходимости его обрабатывать?
Заканчивать этот вопрос, неправильно закрыт (IMO) на основе фразировки. Это тот же вопрос с несколькими хорошими ответами ... http: //stackoverflow.com/questions/14175958/conditional-inclusion-of-a-key-value-pair-in-a-hash – danh