2013-09-02 18 views
5

Tôi đang triển khai trình lặp lua và tôi tự hỏi nhà máy lặp (chức năng tạo ra đóng được sử dụng để lặp qua iteratable, xem list_iter trên http://www.lua.org/pil/7.1.html) nên quay lại trong trường hợp không có gì để lặp lại.Nhà máy lua iterator sẽ quay trở lại trong trường hợp không có gì để lặp lại

Ví dụ: cho phép nói rằng tôi sẽ thực hiện một loại danh sách và đối tượng danh sách của tôi chỉ sẽ không có bất kỳ mục nào cả. Vì vậy, tôi giả sử rằng nội dung ... của for i in myiterator do ... end không bao giờ được truy cập và việc thực thi tập lệnh tiếp tục như thể không có gì xảy ra.

Hiện tại tôi trả lại nil và Lua (jit) than phiền về số attempt to call a nil value. Điều tương tự cũng xảy ra nếu tôi không trả lại giá trị trả về.

Trả lời

4

Bạn có thể trả về một kết thúc mà trả nil như thế này:

function nil_iter() 
    return function() return nil end 
end 
Các vấn đề liên quan