关于lua中的点号与冒号的区别与使用
关于lua中的点号与冒号的区别与使用
如果函数定义使用冒号,则默认会接受self参数,其调用时会传递调用它本身作为参数,而使用点号则不会。
// 点号和冒号的用法
class={}
function class:new()return self
end
function class:init(arg, num)self.arg = argself.num = numprint(self.arg)endfunction class.util(arg, num)class.arg = argclass.num = numprint(class.arg)
end local obj = class:new()class:init("aaa", 1000)print(">>>>>",obj.num)class.util("bbbb", 999)print(">>>>>",class.num)
也可以理解为:
“:”引用静态成员方法。如上图的class:init()冒号定义的方法,后续在本函数中可以使用self:init()来代替,self.arg则是静态方法中的成员。
“.”点号的使用则是普通成员方法,如上图的class.util()点号定义的方法,其中class.arg则为它的普通方法中的成员。
注:在lua中的self和c++,c#,java中所使用的this的性质类似。
运行结果如下图
以上内容是个人的一点总结,如果有错误或不严谨的地方,望能批评指正,欢迎点赞收藏
关于lua中的点号与冒号的区别与使用相关推荐
- Lua中使用点号与冒号的区别
Lua中使用点号(.)与冒号(:)的区别在于: 在函数定义的时候使用:会默认接收self参数: 在函数调用的时候使用:会默认传递调用者自己为参数: 在函数定义和调用的时候使用.则需要显式接收或者传递s ...
- php 号和冒号,关于php:漂亮链接中的撇号和冒号
我正在寻找解决列出书名的"漂亮链接"或"永久链接"的问题,例如: http://www.example.com/title/The-Catcher-in-the ...
- lua面向对象编程之点号与冒号的差异详细比较
首先,先来一段在lua创建一个类与对象的代码 Class = {} Class.__index = Class function Class:new(x,y) local temp = {} setm ...
- c++中的点号(.),冒号(:)和双冒号(::)运算符
1.冒号(:)用法 (1)表示机构内位域的定义(即该变量占几个bit空间) typedef struct _XXX{unsigned char a:4; //char型的字符a占4位unsigned ...
- Lua中的self、冒号和点号
介绍 在lua中,表拥有一个标识:self.self类似于this指针,大多数面向对象的语言(比如C++.C#)都隐藏了这个机制,在编码时不需要显式地声明这个参数,就可以在方法内使用this.在lua ...
- 关于css中“点“,“井号“,“逗号“,“空格“,“冒号“的用法
详解css中"点","井号","逗号","空格","冒号"的用法_三级小野怪的专栏-CSDN博客bo ...
- linux命令冒号加叹号,【转载】Linux中的叹号命令
整天在shell环境下操作,不积累点快捷输入的小技巧是不行的. 未经允许严禁转载 最常用的技巧恐怕就是Tab自动补全以及上方向键来回退上几条历史命令了,这些对于csh,bash,ksh,zsh都适用. ...
- 理解lua中 . : self
文章目录[点击展开](?)[+] 前言 点号定义和调用 冒号定义和冒号调用 运行结果 相互调用 相互调用运行结果 总结 前言 在LUA中,经常可以看到:. self,今天在CSDN上看到一篇博客写的很 ...
- 【Lua编程基础】实测Lua中点和冒号的区别
欢迎加入Unity业内qq交流群:956187480 qq扫描二维码加群 Lua中成员函数的定义应该约定一种形式而不要点和冒号同时使用 一:在lua中面向对象编程的时候都要用冒号 使用冒号声明函数的时 ...
最新文章
- MobaXterm使用
- yapi 插件_强大的开源API接口可视化管理平台——YAPI
- 深入理解 Java G1 垃圾收集器
- Android --- SDK 和 API 是什么意思
- OpenCV检测拐角detecting corners的实例(附完整代码)
- LeetCode 576. 出界的路径数(动态规划)
- LeetCode 984. 不含 AAA 或 BBB 的字符串(贪心)
- bigdecimal js 判断等于0_为啥阿里禁用BigDecimal的equals方法做等值比较
- C++编译过程中没有找到MFC80UD.DLL,因此这个程序未能启动.重新安装应用程序可能会修复此问题? 的彻底解决...
- 《史蒂夫·乔布斯传》——童年篇有感
- prometheus+grafana搭建监控平台监控压测服务器mysql性能
- python 直方图 横向_python绘制直方图
- 嵌入式linux下sqlite应用
- 程序员分享:最近面试 Java 后端开发的感受
- linux 文件-s,linux下文件的特殊权限s和t
- python atm作业详解_Python小案例--ATM系统
- 智源社区AI周刊No.101:DeepMind推出AlphaTensor登Nature封面;stateof.ai发布AI情况报告...
- cfa一级需要计算机吗,CFA一级考试计算机怎么使用?
- 无延时直播/超低延时直播实际测试延时效果(项目实测组图)
- docker搭建jira
热门文章
- 麒麟子Cocos Creator实用技巧五:技能CD效果制作
- ZYNQ_DMA控制BRAM读写的地址问题
- 硬核的表情包UP主,独树一帜的风格吸引Z世代圈粉。
- 树莓派4B ACT指示灯状态表示不同的问题
- 关于栈上分配和TLAB的理解
- Android12 部分应用(客户大型游戏)使用鼠标点击无效,鼠标模拟触摸点击
- WM中Rich Text Format (RTF)格式转换 RichBox组件
- 精耕细作——建行广东江门分行以数字化经营推进信用卡业务持续发展
- matplotlib绘制堆积折线图
- 【宫水三叶的刷题日记】467. 环绕字符串中唯一的子字符串(中等)