タグ

rubyとhashに関するymm1xのブックマーク (2)

  • ActiveSupportのHash拡張であるslice, exceptがびっくりするぐらい便利 - Qiita

    ActiveSupportによる既存Rubyクラスの拡張は人間をダメにするんじゃないかと思いますが、知っていると周りのプログラマに差をつけられるテクニックが満載だと思います。今回はHashの拡張メソッドの話。 よくあるコード some_hash = { key_a: "some content", key_b: "some content", key_c: "some content" } # :key_aと:key_bを取り出したい some_hash.select{|k, _| %i(key_a key_b).include? k} #=> {key_a: ..., key_b: ...} # :key_cを除外したい some_hash.reject{|k, _| k == :key_c} #=> {key_a: ..., key_b: ...} some_hash = { key_

    ActiveSupportのHash拡張であるslice, exceptがびっくりするぐらい便利 - Qiita
  • ruby の inject をわかりやすく説明してみる - Λάδι Βιώσας

    ruby の inject って慣れないと少し理解しづらいよなーと思ったので、極力わかりやすい説明をしてみるテスト。 わかりやすいかもしれない説明 さて、1 から 10 までの合計を求めるこんな↓コードがあった場合 sum = 0 (1..10).each {|i| sum = sum + i } p sum # => 55 inject を使ってこのよう↓に書けます。 p (1..10).inject(0) {|sum, i| sum + i } each と inject でどのように書き変わってるかを図で示すとこんな↓感じ。 injectの引数 0 は、ブロックローカルな sum 変数の初期値になってます。で、ブロックの実行結果の値が sum に代入されて、2回目以降のループを実行します。ループしている間の、各変数とブロックの中身はこんな↓感じ。 sum i ブロックの中身(sum

    ruby の inject をわかりやすく説明してみる - Λάδι Βιώσας
  • 1