<p>tapとyield_selfの使い分けについて</p> <ul> <li>tapについて</li> </ul> <p>tapはレシーバ自身を返すため、元々のレシーバの値を変更することなくメソッドチェーンをつなげることができる。 他の処理を行いながら、メソッドチェーンを行いたい時などに便利。</p> <pre class="code" data-lang="" data-unlink>result = [] test = [1, 2, 3] kekka = test.tap { |t| result &lt;&lt; t.sum }.join(&#39;/&#39;) result =&gt; [6] kekka =&gt; &#34;1/2/3&#34;</pre> <ul> <li>yield_selfについて</li> </ul> <p>yield_selfはブロック内の処理結果を返すため、</p> <p>他の処理を行いながら、メソッドチェーンを行いたい時などに便利。</p>