nextメソッドの使い方

nextメソッドの使い方

nextメソッドの動作の認識が誤っていたので、こちらに備忘録としてまとめます。

next使うと、その要素のままでそれ以降の処理がスキップされて次の要素に移ると思っていたが、 その際は、nilになってしまう。。。
そして、returnのようにnextにも引数が使えると知った。

[1, 2].map do |value|
  next if value == 1
  value * 2
end

→[nil, 4]
[1, 2].map do |value|
  next 1 if value == 1
  value * 2
end

→[1, 4]

よくよく考えたら、mapメソッドで要素をループしており、ブロックの中での処理結果を新しい配列の要素とするからnext if value == 1がtrueになるとnextメソッドに返り値を指定していないので、nilになる。。。。