【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的对象了:
但是这个时候,我们广大的程序员又不满意了:什么鬼,还要输入两个参数又难看又麻烦。
于是Lua创始人听到了我们的声音,给我们设置了一个语法糖 : ( 冒号 )。
结果是一模一样的,但是看起来就顺眼了很多。
所以说使用:就可以在参数项中少些一个self参数,它和使用 . 后接self参数一样的。
OK,今天的博客就到这里,谢谢大家!!!