lua程序设计脚本中点(.)与冒号(:)的差别

lua程序设计脚本中点(.)与冒号(:)的区别

lua中在声明一个函数时,可以有如下两种方式

1.

function ClassA.show()

print("test1")

end


2.

function ClassA:show()

print("test2")

end

那么这两种方式到底有啥区别呢?很简单

定义的时候:ClassA:show()与ClassA.show(self)是等价的,点号(.)要达到冒号(:)的效果要加一个self参数到第一个参数

而调用的时候:AObj:show()与AObj.test(AObj)是等价的,点号(.)要添加对象自身到第一个参数。

总结

点号(.)可以作为静态方法来看待,冒号(:)可以作为成员方法来看待。