読者です 読者をやめる 読者になる 読者になる

kmasdaの日記

rubyとかrailsとかそれっぽいことを

ホップ、ステップ、tap

tap

しらなかったんです。tap。

tap便利だし、ちょっとかわっってる。

instance method Object#tap (Ruby 2.3.0)

self を引数としてブロックを評価し、self を返します。 メソッドチェインの途中で直ちに操作結果を表示するために メソッドチェインに "入り込む" ことが、このメソッドの主目的です。 (1..10) .tap {|x| puts "original: #{x.inspect}"}. to_a .tap {|x| puts "array: #{x.inspect}"}. select {|x| x % 2 == 0} .tap {|x| puts "evens: #{x.inspect}"}. map { |x| x * x } .tap {|x| puts "squares: #{x.inspect}"}

object毎にif文とか書いて処理振り分けるとか、初期値設定とかすごいきれいに書けそう。