【问题标题】:What should a lua iterator factory return in case of nothing to iterate如果没有可迭代的内容,lua 迭代器工厂应该返回什么
【发布时间】:2013-09-02 13:52:23
【问题描述】:

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

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

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

【问题讨论】:

    标签: lua luajit


    【解决方案1】:

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

    function nil_iter()
      return function() return nil end
    end
    

    【讨论】:

      猜你喜欢
      • 2014-07-28
      • 2011-06-21
      • 2016-09-23
      • 1970-01-01
      • 2015-07-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多