Так что это тривиальный, но, надеюсь, веселый вопрос. Мне нужно сделать Hash
с идентичными ключами и значениями из ключей существующего Hash
. Вот пример ввода вместе с моей лучшей попыткой:
input = {'cat' => 'meow', 'dog' => nil}
Hash[*input.keys.map {|k| [k,k]}.flatten]
#=> {'cat' => 'cat', 'dog' => 'dog'}
Не думаю, что это особенно читабельно, поэтому мне было интересно, есть ли лучший, более выразительный синтаксис для этого в Ruby, особенно такой, который мог бы быть более читабельным для будущих программистов, которые поддерживают код?
Вот как я бы сделал то же самое в Python, и я нахожу это немного более читабельным:
dict([[a,a] for a in input])
Но это может быть просто потому, что я привык читать Python!
Поиск предложений, которые будут работать с Ruby 1.8.6 - версией, которой я ограничен.