"Fiz Buzz 퀴즈"퀴즈-Ruby 편을 풀어봤습니다.

3576 단어 Ruby
'피즈버즈 퀴즈'퀴즈. - 루비 편.의 기사가 눈에 띄자 나도 풀어보았다.
fizzbuzz.rb
class FizzBuzz
  def initialize(receiver)
    @receiver = receiver
    @value = ''
  end

  def fizz
    @value << 'Fizz' if @receiver % 3 == 0
    self
  end

  def buzz
    @value << 'Buzz' if @receiver % 5 == 0
    self
  end

  def to_s
    value.to_s
  end

  def inspect
    value.inspect
  end

  private

  def value
    @value == '' ? @receiver : @value
  end
end

class Integer
  def fizz
    FizzBuzz.new(self).fizz
  end

  def buzz
    FizzBuzz.new(self).buzz
  end
end

1.upto(100) do |i|
  puts i.fizz.buzz
end
메서드를 호출할 때 FizBuzz 객체로 변환한 다음 처리합니다.

추기


투고하고 나서야 다음과 같은 부분을 만족시키지 못했다
3의 배수 매개 변수(수신기)를 주면 "Fizz"를, 5의 배수를 주면 "Buzz"를 반환하는 방법을 적절한 클래스(또는 모듈)로 정의합니다.

좋은 웹페이지 즐겨찾기