2017-10-10 117 views
0

我有一些代碼在我的LUA文件,我編輯看起來像這樣通話功能到功能LUA

function getUserinfo(user_id) 
    function call_back_user_info(status , result) 
    t = {["first_name"]= result.first_name_, ['have_access']= result.have_access_, ["last_name"]=result.last_name_,["user_name"]=result.username_} 
    return t 
    end 
    getUser(user_id,call_back_user_info) 
    end 

我需要返回t表中的值時,我打電話getUserinfo function.but它是讓我一個無價值! 注:的getUser功能放入數據call_back_user_info

我怎麼能解決這個問題?感謝

+0

您需要'return'了'getUser'電話。 – luther

+0

不是一個解決方案,但它似乎更簡單,如果'getUser'剛回到列表'狀態,result'。所以,'回報call_back_user_info(的getUser(USER_ID))'或'本地的狀態,結果=的getUser(USER_ID)'...。 –

回答

1

你不能這樣做「長return」從外部函數返回一個內部函數的內部。

但是你可以做的是創造一個局部變量被關閉了,像這樣:

function getUserinfo(user_id) 
    local t 

    function call_back_user_info(status , result) 
    t = {["first_name"]= result.first_name_, 
     ['have_access']= result.have_access_, 
     ["last_name"]=result.last_name_, 
     ["user_name"]=result.username_} 
    end 

    getUser(user_id,call_back_user_info) 

    return t 
end 
+0

「長'return'」是跳遠等一個有趣的遊戲,但作爲一個進口的概念,它完全不是那麼回事,這你說的當然是什麼。 Lua函數是值,因此可以在任何上下文中調用。對「內部」功能的調用不一定在對「外部」功能的調用中。而且,從問題的代碼,很顯然是'getUser'通話是調用'getUserinfo'內內。 –