2013-06-08 3 views
6

Когда я создаю функцию, назначая условие «если» не работает, но когда я создаю функцию, как во втором примере ниже, она работает. Можешь мне сказать почему?Создание функции в Lua

Не работает:

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) 

Рабочая:

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) 

ответ

12

Это потому, что когда вы делаете local countDown = ..., тем countDown переменная не существует до после... часть была выполнена. Таким образом, ваша функция будет иметь доступ к глобальной переменной , а не локальной, которая еще не существует.

Обратите внимание, что Lua преобразует local function countDown ... в следующее:

local countDown 
countDown = function ... 
Смежные вопросы