-2

请帮我实现类Repeat及其方法:

class Repeat 
  def initialize(n) 
    #TODO 
  end 

  def each  
    #TODO 
  end 
end 

def n_times(n)
  #TODO 
end

这段代码:

n_times(2) { |count| puts "You called me #{count} times" }

应该返回这个结果:

# You called me 1 times 
# You called me 2 times 
4

1 回答 1

1

欢迎来到 StackOverflow。似乎您是 OOP 的新手,并且将块传递给 Ruby 中的方法。这个答案简化了你的问题,只关注将块传递给方法。这是一些功能代码:

def n_times(n, &block)
  n.times do |counter|
    yield(counter + 1)
  end
end

n_times(2) { |count| puts "You called me #{count} times" }
于 2013-07-20T15:45:31.480 回答