[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"}

Hashinjectmergeと相性がいい。

posted by Png genki on Sun 27 Jan 2008 at 06:45
Contents
それをinjectでやる方法
Comments
dsjf: https://gist.github.com/6bf1bf2c3cbb5eb6e7a7 これ... '13-1
瀧内元気: おお、チェックしてみます。thx! '11-12
overisland: Reeder for iPhone もこの UI を実装していますね。 '11-12
瀧内元気: その情報は見たのですが、以下のサイトによると、現在はまた必要になってるっぽいんですよね。 ... '11-12
tkawa: http://devcenter.heroku.com/articles/rails31_he... '11-12
Services from s21g
twpro(ツイプロ)
Twitterプロフィールを快適検索
地価2009
土地の値段を調べてみよう
MyRestaurant
自分だけのレストラン手帳
Formula
ブログに数式を埋め込める数式コミュニティ