如果没有要迭代的内容,lua迭代器工厂应该返回什么
我正在实现一个lua迭代器,我想知道迭代器工厂(创建用于迭代可迭代对象的闭包的函数,请参见如果没有要迭代的内容,lua迭代器工厂应该返回什么,lua,luajit,Lua,Luajit,我正在实现一个lua迭代器,我想知道迭代器工厂(创建用于迭代可迭代对象的闭包的函数,请参见list\u iteron)在没有可迭代对象的情况下应该返回什么 例如,假设我将实现一个列表类型,而我的列表对象根本没有任何条目。因此,我假设myiterator中I的主体…。。。结束 只是从未访问过,脚本执行将继续,就像什么都没有发生一样 此时,我返回nil,Lua(jit)抱怨试图调用nil值。如果我不返回返回值,也会发生同样的情况。您可以返回一个返回nil的闭包,如下所示: function nil_
list\u iter
on)在没有可迭代对象的情况下应该返回什么
例如,假设我将实现一个列表类型,而我的列表对象根本没有任何条目。因此,我假设myiterator中I的主体…
。。。结束
只是从未访问过,脚本执行将继续,就像什么都没有发生一样
此时,我返回
nil
,Lua(jit)抱怨试图调用nil值。如果我不返回返回值,也会发生同样的情况。您可以返回一个返回nil
的闭包,如下所示:
function nil_iter()
return function() return nil end
end