Lua中使用点号与冒号的区别

Lua中使用点号(.)与冒号(:)的区别在于:

  • 在函数定义的时候使用:会默认接收self参数;
  • 在函数调用的时候使用:会默认传递调用者自己为参数;
  • 在函数定义和调用的时候使用.则需要显式接收或者传递self参数。
local test = {}
 
function test:funcA()
    print("I`m funcA")
end
 
function test.funcB(self)
    print("I`m funcB")
end
 
test:funcA()
test.funcA(self)
 
test.funcB(self)
test:funcB()
 
-- I`m funcA
-- I`m funcA
-- I`m funcB
-- I`m funcB

其实说到底就是使用 : 比起使用 . 就可以少写很多 self,就这么简单!

ps

一般来说,在使用 Lua 进行面向对象编程的时候,声明方法和调用方法统一用冒号,对于属性的调用全部用点号!

原文链接:https://fightsyj.blog.csdn.net/article/details/86315594


版权声明:本文为weixin_43284350原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。