Ruby 初心者スレッド Part 24
at TECH
484:デフォルトの名無しさん
09/01/13 10:32:08
>>436
>hash = {}
>[:a, :b, :c].each {|k| hash[k] = @hash[k] }
>という処理をもっと簡単に書く方法があれば教えてください。
たぶん、ない。
class ::Hash
def elems_at(*keys)
h = {}
keys.each {|k| h[k] = self[k] }
h
end
end
とでもして、hash = @hash.elems_at(:a, :b, :c)としとけ。
>>437
>hash = @hash.dup()
これは違うだろ。選択した要素だけを選び出すのであって、要素をすべてコピーするわけではない。
>>440
>hash.merge!(@hash)
上に同じ。
>>442
>hash = Hash[*@hash.find{|k, v| [:a, :b, :c].include?(k)}.flatten]
include? は線形探索だから、それを何度も行うのは効率悪そう
次ページ続きを表示1を表示最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5503日前に更新/246 KB
担当:undef