5

私は 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ます。戻り値を返さない場合も同様です。

4

1 に答える 1

4

nil次のように返すクロージャーを返すことができます。

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