令和元年最初の年末です。いかがお過ごしでしょうか。私は年末進行まっただ中です😢 今回は聞いたことあるけどあんまり使う機会のなさそうな #tap、#yield_self、#then の話をしてみたいと思います。 仕様としてはAPIリファレンスを参照すると self を引数としてブロックを評価し、self を返します。 ということなので、疑似実装としては以下のようになると思います。 class Object def tap(&block) yield self self end end #tap は古くから存在するメソッドで、1.8.3の頃から存在するようです。 Object#yield_self / Object#then 仕様としてはAPIリファレンスには self を引数としてブロックを評価し、ブロックの結果を返します。 とあります。擬似的な実装は以下のようになると思います。 clas
![Ruby: Object#tap、Object#then を使ってみよう|TechRacho by BPS株式会社](https://cdn-ak-scissors.b.st-hatena.com/image/square/112635ed325d6c6112963aaf47afc5bcad018abf/height=288;version=1;width=512/https%3A%2F%2Ftechracho.bpsinc.jp%2Fwp-content%2Fuploads%2F2019%2F12%2Fruby_tap_and_then_eyecatch2.png)