6

「if」条件を割り当てて関数を作成すると機能しませんが、以下の2番目の例のように関数を作成すると機能します。なぜか教えてくれますか?

動作していません:

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存在しないためです。したがって、関数は、まだ存在しないローカル変数ではなく、グローバル変数にアクセスします。...

Lualocal function countDown ...は次のように変換されることに注意してください。

local countDown
countDown = function ...
于 2013-06-08T12:04:46.363 に答える