🐈
next unless 条件 について
next
ループ処理をスキップするためのもの。
unless
unless 条件で 条件(例えば、count > 0 など)が false の時に処理を実行する。
→ なので、「next unless 条件」 は、条件が false なら next を実行するということ。
next unless 使用例
# 奇数ではない場合に next を実行する
count = 0
(0..10).map do |i|
next unless i.odd?
count += 1
i + 1
end
=> [nil, 2, nil, 4, nil, 6, nil, 8, nil, 10, nil]
上記のコードでは、 (0..10)
の範囲内の各要素に対してブロックが実行されます。
next unless i.odd?
は、 i
が奇数でない場合に next
を実行し、それ以外の場合は通常の処理を行います。
奇数の場合、count
の値が増え、i + 1
が新しい要素として追加されます。
Discussion