Wdrażam lua iterator i zastanawiam się, co to jest fabryka iteratora (funkcja, która tworzy zamknięcie, które jest używane do iteracji po iteracyjnej, zobacz list_iter
na http://www.lua.org/pil/7.1.html) powinien powrócić w przypadku, gdy nie ma nic do powtórzenia.Co powinieneś przywrócić fabrykę lua iteratorowi, jeśli nic nie trzeba powtórzyć?
E.g. powiedzmy, że zaimplementowałbym typ listy, a mój obiekt listy nie miałby w ogóle żadnych wpisów. Tak więc przypuszczam, że ciało nigdy nie było odwiedzane, a wykonywanie skryptu trwa tak, jakby nic się nie stało.
W tej chwili zwracam nil
, a Lua (jit) narzeka na attempt to call a nil value
. To samo stanie się, jeśli nie zwrócę wartości zwracanej.