Lua中的self与点号和冒号的使用

在lua编程当中,会自己实现许多函数,并且进行调用,在调用的时候,会触及点号" . “和冒号” : "
他们两者的区别在于一个有自己的表self(冒号),一个没有(点号)。类似与C++中的类中有默认的this指针,而类外没有!
直观的看代码吧!
输出的结果是一样的

点号

Test = {length = 4}
function Test.set_length(Test, length)
    Test.length = length
end

function Test.print_area(Test)
    print(Test.length * Test.length)
end

print(Test.length)
Test.set_length(Test, 5)
print(Test.length)
Test.print_area(Test)

--输出的结果为
--4
--5
--25

下面的是使用冒号的


Test = {length = 4}
function Test:set_length(length)
    self.length = length
end

function Test:print_area()
    print(self.length * self.length)
end

print(Test.length)
Test:set_length(5)
print(Test.length)
Test:print_area()
--输出的结果同样为
--4
--5
--25

当然,用点号定义的函数,可以用冒号调用,反之亦然。
在用点号定义的函数用冒号调用时,只需要把形参中的表(自身)去掉即可
反之,则在形参中加入即可

Test:print_area()
Test.print_area(Test)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Gxy_w

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值