Lua点号和冒号区别
定义的时候冒号默认接收self参数
调用的时候冒号默认传递调用者自己为参数
而句号要显示传递或接收self参数
-- 例如:句号定义,需要显示传递或接收
- a = { x = 1 }
- function a.fun(self)
- print(self.x)
- end
- a.fun(a)--输出1,将a自己做为参数传给fun函数的self
这样调用要传递self,比较麻烦,所以lua给一个方便的方法
将函数定义改成冒号,就可以省略self参数
- function a:fun()
- print(self.x)
- end
- a.fun(a)
将调用改成冒号,就可省略传自己进去
- function a:fun()
- print(self.x)
- end
- a:fun()
最后说明一下,如果不用self,直接在函数里使用x是不行的
之前以为可以像c++类一样,成员函数可以直接使用类成员变量
- function a:fun()
- print(x)--将输出nil,找不到这个x
- end
----------------------------------------------------------------------------------------------------
function t.a.b.c:f (params) body end
是这样一种写法的语法糖:
t.a.b.c.f = function (self, params) body end
- function test()
- t.f()
- t:g()
- t:h()
- t.i()
- t:h()
- t.j(t)
- t:h()
- end
- t = {}
- function t.f()
- print("tf");
- end
- function t:g()
- self.x = 10
- end
- function t:h()
- print(self.x)
- end
- function t.i()
- t.x = 20
- end
- function t.j(k)
- k.x = 30
- end
输出:
[LUA-print] 10
[LUA-print] 20
[LUA-print] 30
Lua点号和冒号区别相关推荐
- 关于lua中的点号与冒号的区别与使用
关于lua中的点号与冒号的区别与使用 如果函数定义使用冒号,则默认会接受self参数,其调用时会传递调用它本身作为参数,而使用点号则不会. // 点号和冒号的用法 class={} function ...
- lua面向对象编程之点号与冒号的差异详细比较
首先,先来一段在lua创建一个类与对象的代码 Class = {} Class.__index = Class function Class:new(x,y) local temp = {} setm ...
- Lua语言中的冒号:和点.
lua编程中,经常遇到函数的定义和调用,有时候用点号调用,有时候用冒号调用. girl = {money = 200} function girl.goToMarket(girl ,someMoney ...
- 一号信令是什么?1号信令和7号信令的区别介绍!
1号信令又称为多频互控信令或随路信令.那么,什么是一号信令?一号信令是怎么分类的?1号信令常见问题有哪些?1号信令和7号信令之间有哪些区别呢?接下来我们就跟随飞畅科技的小编一起来详细了解下吧! 一.1 ...
- 微信H5授权用户和公众号关注用户区别
微信H5授权用户和公众号关注用户区别 概念H5页面访问用户是通过微信jscode获取token授权普通访问用户 公众号关注用户是关注了微信的公众号后的用户 概念上一个是普通访问用户(包括了但不限于关注 ...
- 订阅号和服务号有什么区别?哪种更好?企业该如何选择?
如今微信公众号运营是企业进行网络推广的必要手段,要做好公众号运管就要充分的了解公众号.前期创建微信公众号时会让你选择公众号的类型,那么订阅号和服务号的区别是什么?企业选择哪个比较好?今天伯乐网络传媒就 ...
- 微信端中的企业号、订阅号、服务号之前的区别
微信端中的企业号.订阅号.服务号之前的区别 一直在开发微信端的企业号和订阅号,却还不太清楚两者之间的区别到底在哪,以下是找的文档区别. 企业号: 面向人群:面向企业,政府.事业单位和非政府组织,实现生 ...
- mysql中双引号和单引号有什么区别
mysql中双引号和单引号有什么区别 前2天看到有人问,mysql中双引号和单引号有什么区别? 希望大家可以关注下公众号,支持一下,鞠躬感谢~ 我就直接po代码和截图了,如下 select * fro ...
- Lua ipairs与pairs的区别
Lua ipairs与pairs的区别 相同点和不同点 相同点 不同点: 举例说明 测试代码 测试结果分析 相同点和不同点 相同点 ipairs和pairs一般都用来对table进行遍历 不同点: i ...
最新文章
- 初三女生学计算机专业,江西中专初三毕业学计算机专业适宜女生吗
- iOS:触摸控件UITouch、事件类UIEvent
- js中的attribute详解
- pycharm如何分两页阅读_雅思高分喜报| 听力、阅读、写作突破7分,2个月轻松突破雅思总分7, 她是如何做到的?...
- 计算机网络第四章-网络层复习笔记
- 如何在GraphPad Prism中使用非线性回归拟合模型?
- Nuget发布Dll
- TechEd2010
- 修复ext4日志(jbd2)bug( Ext4 文件系统有以下 Bug)
- mojoportal升级中用户相关设置
- maven笔记(2)
- rapidsvn 安装步骤
- 三大运营商发5G白皮书:传统短信迎大升级 推出5G消息
- Java实现输出PDF
- 文献总结--水印图像文献调研
- 霍元甲被日本人用烂肺药毒死(图)
- 虚拟机提示:无法连接虚拟设备 sata0:1,因为主机上没有相对应的设备……
- 2015年SaaS细分领域部分代表公司盘点 融资额近40亿
- 股票 - - 常用指标【中】
- [华语][张国荣][16CD][1978-1987][APE+CUE][3.94G][115][sqhhj0622#HD2PT]