Ruby 初心者スレッド ..
[2ch|▼Menu]
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? は線形探索だから、それを何度も行うのは効率悪そう


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

5503日前に更新/246 KB
担当:undef