2013-06-08 31 views
6

Khi tôi tạo hàm bằng cách gán, điều kiện "nếu" không hoạt động nhưng khi tôi tạo chức năng như trong ví dụ thứ hai bên dưới, nó hoạt động. Bạn có thể cho tôi biết tại sao?Chức năng tạo trong Lua

Không làm việc:

local start=os.time() 

local countDown = function(event) 
    if((os.time()-start)==3) then 
     Runtime: removeEventListener("enterFrame", countDown) 
    end 
    print(os.time()-start) 
end 

Runtime:addEventListener("enterFrame", countDown) 

làm việc:

local start=os.time() 

local function countDown(event) 
    if((os.time()-start)==3) then 
     Runtime: removeEventListener("enterFrame", countDown) 
    end 
    print(os.time()-start) 
end 

Runtime:addEventListener("enterFrame", countDown) 

Trả lời

12

Đó là bởi vì khi bạn làm local countDown = ..., các countDown biến không tồn tại cho đến khi sau phần ... đã được thực hiện. Vì vậy, chức năng của bạn sẽ truy cập biến số toàn cầu, không phải là biến cục bộ chưa tồn tại.

Lưu ý rằng Lua chuyển đổi local function countDown ... như sau:

local countDown 
countDown = function ... 
Các vấn đề liên quan