1. 程式人生 > >問題記錄 lua賦值函式型別後傳參執行沒效果

問題記錄 lua賦值函式型別後傳參執行沒效果

今天遇到一個問題 在寫一個公共ui時我想暴露一個介面用來做自己想要的操作 像這樣:

function UI:setExecute(callBack)
    self.execute = callBack
end

但使用的時候要有引數的函式時沒有效果

panel:setExecute(function () self:unselect(tag) end)
...
--執行
if self.execute then
    self.execute()
end

後來思考了一下想到什麼原因 改成這樣就行了

panel:setExecute(function (tag) unselect(tag) end)
...
--執行 if self.execute then self.execute(tag) end

其實不是什麼大問題 為什麼要記錄呢 因為我搜索了一下發現 這個專案這麼久了暴露介面的做法 只有我做了傳參做法 感覺有可能是以前有人想做傳參的做法有問題所以沒搞 所以記錄分享一下可能可以幫到別人