復習:カスタムイテレータ
CoddyのRubyジャーニー「ロジックとフロー」セクションの一部 — レッスン 20/56。
この章のすべてを組み合わせて、yieldを使用し、ブロックを受け取り、有用な値を返す独自のイテレータメソッドを作成しましょう。
チャレンジ
中級配列 numbers を受け取り、配列内の各偶数をそのブロックに yield する(奇数は完全にスキップする) each_even という名前のメソッドを定義してください。
次に、カンマ区切りの整数のリストを読み込み、yield された各値に対して "Even: <n>" を出力するブロックを渡して each_even を呼び出し、最後に以下を出力してください:
Done: <count>ここで、count は yield された偶数の数です。
入力が 1,2,3,4,5,6 の場合、出力は以下のようになります:
Even: 2
Even: 4
Even: 6
Done: 3自分で試してみよう
# TODO: 各偶数をyieldするeach_even(numbers)を定義してください
numbers = gets.chomp.split(",").map(&:to_i)
count = 0
# TODO: "Even: <n>"を表示し、yieldされた値ごとにcountを
# インクリメントするブロックを渡してeach_evenを呼び出してください
puts "Done: #{count}"