我正在尝试执行以下代码:
class Array
def each
for i in self
yield(i)
end
end
end
[1,2,3,4].each {|i| puts i*i}
当我运行此代码时,我收到以下错误:
stack level too deep (SystemStackError)
但是下面的代码执行成功:
class Array
def each
yield(self[0])
yield(self[1])
yield(self[2])
yield(self[3])
end
end
[1,2,3,4].each {|i| puts i*i}
输出:
1
4
9
16
答案 0 :(得分:0)
for
循环调用each
。
参考: