Bootstrap

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

;