Lua关闭得到无限循环

时间:2015-05-28 10:28:48

标签: lua

我无法理解为什么这个Lua代码在连续循环中运行。我的印象是,它只会执行一次。任何人都可以解释一下吗?

function testCounter()
        return function ()
                print("test function called")
                return 1
        end
end

for v in testCounter() do
        print(v)
end

1 个答案:

答案 0 :(得分:2)

正如Egor Skriptunoff所说,for循环使用testCounter()返回的函数作为next函数。因为它永远不会返回nil,所以循环永远不会退出。