2011-06-18 204 views
1

如果我這樣做,我得到錯誤。我該怎麼辦?Lua功能範圍

local function one() 
    local function two() 
     local function three() 
      callMe() -- got error here 
     end 
    end 
end 

local function callMe() 
    print ("can't call :(") 
end 

callMe() 
+4

據我所知,該代碼是無效的Lua:在功能'one','two'和'three'需要'()'後他們。 –

+0

對不起,我的疏忽。當我在這裏編寫示例代碼時,我很着急,但這不是真正的代碼。 – Devyn

回答

6

當地人有之前宣稱用於:

local callMe 
local function one() 
    local function two() 
     local function three() 
      callMe() -- got error here 
     end 
    end 
end 
function callMe() 
    print ("can't call :(") 
end 
callMe() 
4

除了缺少()onetwothree,就像巴特煮布鍋說,調用three()將錯誤,因爲callMethree的範圍之內的本地功能,所以它不知道功能。