【发布时间】:2016-02-02 07:17:24
【问题描述】:
我正在学习lua,谁能解释一下这段代码是如何工作的?
table = {1, 2, 3, 4, 5}
function num(table, start)
table = start
return function()
i = i + 1
if table[i - 1] then
return i - 1,[table - 1]
else
return nil
end
end
for k,v in ipairs(table) do
print(k,v)
end
【问题讨论】:
-
return i - 1,[table - 1]是语法错误。你在哪里看到这个脚本? -
它也缺少
endforelse声明 -
代码看起来很糟糕。
num没有在其中任何地方使用;立即分配给它的table参数,使其毫无意义;i是一个全局变量,没有在任何地方定义,所以i = i+1会失败;正如 hjpotter 和 lukas 指出的那样,它的结构不正确。 -
此代码将为您提供
1,12,2、3,3、4,4、5,5的输出。num函数永远不会被调用。如果它会 - 它会产生错误:没有足够的end语句。或更早 -[t-1]不是来自 Lua 的东西。好吧,它只是神秘的块 =) -
看起来 num 将成为一个迭代器。我的猜测是这不是所有的代码
标签: lua