Object#tapを制御構造で実現する方法
ensureのreturning的な使い方 - Hello, world! - s21g
→Ruby on RailsのreturningはObject#tapである。Ruby 1.8.7以降で使えるObject#tapに萌えるのはtapかわいいよtap - http://rubikitch.com/に移転しましたを参照してくれ。
これってbegin〜ensureで記述できるんだね。ensure節の評価値は無視されることは知っていたのだが、こいつは盲点だった。まさかObject#tapがensureで記述できるなんて。
begin a = [] # 初期値 ensure a[0]=1 # 破壊的更新 end a # => [1] # tapで書くとこんな感じ [].tap {|b| b[0] = 1 } # => [1]
うーん、syntax highlight記法を使うとうまく表示されない。おかしいなぁ…