【Lua基础系列】之面向对象编程--语法糖

              【Lua基础系列】之面向对象编程--语法糖

  

    大家好,我是Lampard~~

    欢迎来到Lua基础系列的博客

    PS:本博客知识参考资料为:《Lua程序设计第四版》,该书由Lua的创始人2018年所编著,所以大家可以放心去吸收知识

      

     前文再续,书接上一回。

     今天要接着讲Lua中的面向对象编程中的语法糖。

    

   语法糖:

    从很多意义上讲,Lua语言中的一张表就是一个对象。它们都拥有一个与其值无关的标识(self)-- 类似this的指针

    例如,我们现在创建一张表:

Account = { balance = 0 }
          --  余额为0的账户

function Account.withdraw( v )
         balance = balance - v
end
          -- 取款

function Account.deposit( v )
         balance = balance + v
end
          -- 存款

   此时我们可以把它看成一张含有两个方法,一个数值的 同时也可以把它当作是一个银行账户的类

   为了使接受者(receiver)方便进行操作,我们要用一个额外的参数(self)来表示接受者: 

Account = { balance = 0 }
          --  余额为0的账户

function Account.withdraw( self, v )
         self.balance = self.balance - v
end
          -- 取款

function Account.deposit(self, v )
         self.balance = self.balance + v
end
          -- 存款

 这样我们就可以用一张新表来作为Account的对象了:

1

 

但是这个时候,我们广大的程序员又不满意了:什么鬼,还要输入两个参数又难看又麻烦。

于是Lua创始人听到了我们的声音,给我们设置了一个语法糖  : ( 冒号 )。

2

结果是一模一样的,但是看起来就顺眼了很多。

所以说使用:就可以在参数项中少些一个self参数,它和使用 . 后接self参数一样的。

 

  OK,今天的博客就到这里,谢谢大家!!!

 

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Lampard杰

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

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

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

打赏作者

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

抵扣说明:

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

余额充值