当前位置: 代码迷 >> 其他开发语言 >> Lua无状态迭代器有关问题
  详细解决方案

Lua无状态迭代器有关问题

热度:141   发布时间:2016-05-02 03:59:44.0
Lua无状态迭代器问题
无状态迭代器参数按(控制变量,状态常量)顺序执行,第一次可以正常执行,后面就会出问题,实际上参数顺序只能是(状态常量,控制变量)
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。
  相关解决方案