5

我正在实现一个 lua 迭代器,我想知道迭代器工厂(创建用于迭代可迭代对象的闭包的函数,参见list_iterhttp://www.lua.org/pil/7.1.html 应该返回没有什么可迭代的情况。

例如,假设我将实现一个列表类型,而我的列表对象根本没有任何条目。因此,我假设 只是从未访问过的主体...,并且脚本执行继续进行,就好像什么也没发生一样。for i in myiterator do ... end

目前我回来了nil,Lua(jit) 抱怨attempt to call a nil value. 如果我不返回返回值,也会发生同样的情况。

4

1 回答 1

4

您可以返回一个nil像这样返回的闭包:

function nil_iter()
  return function() return nil end
end
于 2013-09-02T14:07:49.817 回答