27th
Sun
それをinjectでやる方法
[Ruby] [:name, :yomi] から {:name=>"maiha", :yomi=>"maiha"} を作りたい
最初に思いついたのは、inject
array = [:name, :yomi] array.inject({}){|h,i| h[i] = "maiha"; h} => {:name=>"maiha", :yomi=>"maiha"} "; h" が冗長で悔しいのよね。
inject
でもこんな感じに書けばシンプルにできますよ。
1 >> [:name, :yomi].inject({}){|h,k| h.merge(k => "maiha")} 2 => {:name=>"maiha", :yomi=>"maiha"}
Hash
のinject
はmerge
と相性がいい。
posted by
genki
on Sun 27 Jan 2008
at 06:45