Создание функции в 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)
1 ответ
Решение
Это потому, что когда вы делаете local countDown = ...
, countDown
переменная не существует, пока после ...
часть была выполнена. Таким образом, ваша функция будет обращаться к глобальной переменной, а не к локальной, которая еще не существует.
Обратите внимание, что Lua преобразует local function countDown ...
в следующее:
local countDown
countDown = function ...