堆栈级别太深:SystemStackError

时间:2015-01-13 12:14:03

标签: ruby

我正在尝试执行以下代码:

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

1 个答案:

答案 0 :(得分:0)

for循环调用each

参考: