2013-09-02 5 views
5

Sto implementando un iteratore lua e mi chiedo quale sia la fabbrica dell'iteratore (la funzione che crea la chiusura che viene utilizzata per iterare, vedi list_iter su http://www.lua.org/pil/7.1.html) dovrebbe tornare in caso di nulla per iterare.Che cosa dovrebbe restituire un factory iterator lua in caso di iterate

E.g. Diciamo che vorrei implementare un tipo di lista e il mio oggetto lista non avrebbe proprio nessuna voce. Quindi suppongo che il corpo ... di for i in myiterator do ... end non venga mai visitato e l'esecuzione dello script continui come se nulla fosse accaduto.

Al momento restituisco nil e Lua (jit) si lamenta di attempt to call a nil value. Lo stesso accade se non restituisco un valore di ritorno.

risposta

4

È possibile restituire una chiusura che restituisce nil come questo:

function nil_iter() 
    return function() return nil end 
end 
Problemi correlati