6

当我通过分配“if”条件创建函数时不起作用,但是当我像下面第二个示例那样创建函数时,它起作用了。你能告诉我为什么吗?

不工作:

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)
4

1 回答 1

12

那是因为当你这样做时local countDown = ...,该countDown变量直到部分执行后才存在。因此,您的函数将访问一个全局变量,而不是尚不存在的本地变量。...

请注意,Lua 转换local function countDown ...为以下内容:

local countDown
countDown = function ...
于 2013-06-08T12:04:46.363 回答