Lua 點調用和冒號調用的區別

object.func_name <==> object.func_name(arg1,arg2...)
object:func_name <==> object:func_name(self,arg1,arg2...)

點定義函數 ->需要顯示傳遞或接收self

冒號定義函數 -> 可以省略self參數

(冒號的作用:定義時,給函數添加隱藏的第一個參數self;調用時,默認把當前作者作爲第一個參數傳遞進去;)

點定義的函數,最好使用點調用;冒號定義的函數,最好使用冒號調用;否則

第一種情況:點定義函數,冒號調用函數

出現的問題:參數的第一個值爲table value

解決的方法:定義時,留出table value 需要的形參


第二種情況:冒號定義函數,點調用函數

出現的問題:第一個參數會丟失,參數整體前移,並且最後一個參數值爲nil

解決的方法:點調用的第一個參數傳self

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章