我正在学习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
答案 0 :(得分:0)
看起来代码导致了自定义迭代器功能。但它没有完成,这是我最好的猜测它应该是什么样的
tab = {1, 2, 3, 4, 5}
function num(tab, start)
local i = start or 1
return function()
i = i + 1
if tab[i - 1] then
return i - 1,tab[i - 1]
else
return nil
end
end
end
for k,v in ipairs(tab) do
print(k,v)
end
for k,v in num(tab) do
print(k,v)
end
这段代码的作用是首先循环选项卡并打印键值对。接下来,它使用一个迭代器,它在它之前打印键值对。
迭代器继续返回,直到它返回nil。然后for循环结束。