Techioz Blog

Array#each が同じ要素を含む配列を返すのはなぜですか?

概要

私は Ruby でそれぞれがどのように機能するかの詳細を学んでいるので、次のコード行を試してみました。

p [1,2,3,4,5].each { |element| el }

そして結果は次の配列になります

[1,2,3,4,5]

それぞれの配列の戻り値が同じなのはなぜですか?それぞれは反復処理のメソッドを提供するだけではありませんか?それとも、各メソッドが元の値を返すのが一般的な慣例なのでしょうか?

解決策

Array#each は、それが呼び出された [array] オブジェクトを返します。ブロックの結果は破棄されます。したがって、元の配列に厄介な副作用がない場合は、何も変更されません。

おそらく地図を使用するつもりですか?

p [1,2,3,4,5].map { |i| i*i }