理解Lua 语言中的点、冒号与self

2018-05-11  本文已影响0人  玛玛哈哈m

Lua编程中,经常遇到函数的定义和调用,有时候用点号调用,有时候用冒号调用
其实用“.”或者用“:”都是可以的,区别是使用冒号时,会隐性传递一个self参数,该参数self指向调用者自身
点号和冒号最主要的区别在于是否包含隐性参数self

这样一来,Class:new(10, 20)这样的函数调用实际上有3个实参,分别是self,10,20,但是function Calss.new(x, y)这样用点号实现的函数定义实际上只有2个形参,这样传参的结果是
self ——> x
10 ——> y
20 ——> 丢弃

综上所述,给出一条不成文的约定:
用lua进行面向对象的编程,成员方法的声明和调用统一用冒号形式,对于数据成员的调用全部用点号形式。

上一篇 下一篇

猜你喜欢

热点阅读