Rubyについて Part 26

このエントリーをはてなブックマークに追加
543デフォルトの名無しさん
>>541
Rubyっぽくわけるならこうだろ。

module FizzBuzz
  def each
    super do |i|
      yield case
        when (i % 15).zero?; 'FizzBuzz'
        when (i % 3).zero?; 'Fizz'
        when (i % 5).zero?; 'Buzz'
        else i
        end
    end
  end
end

fizzbuzz = (1..100).extend(FizzBuzz)
puts fizzbuzz.to_a
fizzbuzz.each {|x| puts x}

全部一度に生成させるも一つずつ処理するも自由。