无状态迭代器参数按(控制变量,状态常量)顺序执行,第一次可以正常执行,后面就会出问题,实际上参数顺序只能是(状态常量,控制变量)
a = {"one", "two", "three"}
for j, v in ipairs(a) do
print(j, v)
end
function iter (i, a)
i = i + 1
local v = a[i]
if v then
return i, v
end
end
function ipairs (a)
return iter, 0, a
end
我想知道为什么第一次用dofile可以正常执行。Thanks in advance!
------解决方案--------------------
第一次可以正常执行是因为这时ipairs还没有被你重新定义,是lua原本的ipairs。