Lua笔记19 面向对象实现__index
来源:互联网 发布:excel对应数据替换 编辑:程序博客网 时间:2024/04/28 06:09
--[[使用__index元表方法来实现table的继承特性]]Acount = { balance = 100 }function Acount:deposit(v)self.balance = self.balance +vendfunction Acount:new(o)o = o or {} --当o不存在,会定义o={}setmetatable(o,self) --将Acount作为元表self.__index = self --自身的__index 方法,为Acount 表return oendb = Acount:new()print(getmetatable(b))print(Acount)b:deposit(100) --[[注意 :使用的是冒号]]--[[lua 无法在table b中查找到“条目”deposit 时,它会搜索元表的__index条目 。 即:b:deposit(100) 等价于:getmetatable(b).__index.deposit(b,100)getmetatable(b) = Acount. 那么就等于: Acount.__index.deposit(b,100)Acount.__index 值为 Acount。所以 也等于:Acount.deposit(b,100),这个函数的结果为:b.balance 的值。]]print(b.balance) --[[访问一个b没有的字段时,查找元表的__index方法,即:getmetatable(b).__index.balance,那么实际上返回的结果是 Acount.balance的值 。]] c = Acount:new({"aa","bb"})for _,v in ipairs(c) doprint("c 表中元素:",v)endprint("c.balance 的值:",c.balance) --[[访问一个b没有的字段时,查找元表的__index方法,即:getmetatable(b).__index.balance,那么实际上返回的结果是 Acount.balance的值 。]] d = Acount:new({k1 = "mm",k2 = "gg"})print(d["k1"])print(d.k1)
0 0
- Lua笔记19 面向对象实现__index
- Lua笔记15 __index
- Lua学习笔记Day3-Lua实现类、Lua面向对象
- Lua 面向对象实现
- lua实现面向对象
- lua实现面向对象
- lua实现面向对象
- 【Lua】面向对象实现
- Lua面向对象实现
- Lua面向对象实现
- lua 实现面向对象
- Lua学习笔记:面向对象
- Lua学习笔记--面向对象
- Lua 中实现面向对象
- Lua面向对象的实现
- Lua 中实现面向对象
- Lua 中实现面向对象
- lua的面向对象实现
- 为什么要有this指针?(更新中)
- 适配器模式
- 杭电ACM1006
- 删除ArrayList集合中的元素(方法剖析)
- 【数据结构】二叉树
- Lua笔记19 面向对象实现__index
- 大数据风控指标----查准率与查全率
- 【数据库】:哈工大软件学院数据库原理第一次实验背景知识
- Makefile中的几个调试方法
- 服务端PHP设置cookie,客户端未生效
- Command模式实现撤销重做(Undo/Redo)
- 冒泡排序练习(Bubble Sort)
- 一道算法题
- 欢迎使用CSDN-markdown编辑器