【发布时间】:2011-09-18 01:03:06
【问题描述】:
class Fixnum
def repeat
for i in 1..self.to_i
yield
end
end
end
z = Fixnum.new 4
上面的程序给出undefined method new for Fixnum:Class (NoMethodError)。为什么这样?我刚刚尝试在另一个课程中使用它并且它有效。
谢谢!
【问题讨论】:
-
repeat是不是一个奇怪的名称,用于在每次迭代中产生不同值而不重复相同的方法?此外,您基本上是在重新实现Hash#each((1..z).each { |x| ... })。 -
顺便说一句,
Fixnum#times做同样的事情!此外,它还产生从0到n-1的数字。 -
我相信代码是一个示例,可以了解 .each 和类似的方法如何工作,而不是 Vinisa 试图创建的方法,而且,该方法执行名称所说的,它重复了该块n 次。
标签: ruby nomethoderror