关于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中的点号与冒号的区别与使用相关推荐

  1. Lua中使用点号与冒号的区别

    Lua中使用点号(.)与冒号(:)的区别在于: 在函数定义的时候使用:会默认接收self参数: 在函数调用的时候使用:会默认传递调用者自己为参数: 在函数定义和调用的时候使用.则需要显式接收或者传递s ...

  2. php 号和冒号,关于php:漂亮链接中的撇号和冒号

    我正在寻找解决列出书名的"漂亮链接"或"永久链接"的问题,例如: http://www.example.com/title/The-Catcher-in-the ...

  3. lua面向对象编程之点号与冒号的差异详细比较

    首先,先来一段在lua创建一个类与对象的代码 Class = {} Class.__index = Class function Class:new(x,y) local temp = {} setm ...

  4. c++中的点号(.),冒号(:)和双冒号(::)运算符

    1.冒号(:)用法 (1)表示机构内位域的定义(即该变量占几个bit空间) typedef struct _XXX{unsigned char a:4; //char型的字符a占4位unsigned ...

  5. Lua中的self、冒号和点号

    介绍 在lua中,表拥有一个标识:self.self类似于this指针,大多数面向对象的语言(比如C++.C#)都隐藏了这个机制,在编码时不需要显式地声明这个参数,就可以在方法内使用this.在lua ...

  6. 关于css中“点“,“井号“,“逗号“,“空格“,“冒号“的用法

    详解css中"点","井号","逗号","空格","冒号"的用法_三级小野怪的专栏-CSDN博客bo ...

  7. linux命令冒号加叹号,【转载】Linux中的叹号命令

    整天在shell环境下操作,不积累点快捷输入的小技巧是不行的. 未经允许严禁转载 最常用的技巧恐怕就是Tab自动补全以及上方向键来回退上几条历史命令了,这些对于csh,bash,ksh,zsh都适用. ...

  8. 理解lua中 . : self

    文章目录[点击展开](?)[+] 前言 点号定义和调用 冒号定义和冒号调用 运行结果 相互调用 相互调用运行结果 总结 前言 在LUA中,经常可以看到:. self,今天在CSDN上看到一篇博客写的很 ...

  9. 【Lua编程基础】实测Lua中点和冒号的区别

    欢迎加入Unity业内qq交流群:956187480 qq扫描二维码加群 Lua中成员函数的定义应该约定一种形式而不要点和冒号同时使用 一:在lua中面向对象编程的时候都要用冒号 使用冒号声明函数的时 ...

最新文章

  1. MobaXterm使用
  2. yapi 插件_强大的开源API接口可视化管理平台——YAPI
  3. 深入理解 Java G1 垃圾收集器
  4. Android --- SDK 和 API 是什么意思
  5. OpenCV检测拐角detecting corners的实例(附完整代码)
  6. LeetCode 576. 出界的路径数(动态规划)
  7. LeetCode 984. 不含 AAA 或 BBB 的字符串(贪心)
  8. bigdecimal js 判断等于0_为啥阿里禁用BigDecimal的equals方法做等值比较
  9. C++编译过程中没有找到MFC80UD.DLL,因此这个程序未能启动.重新安装应用程序可能会修复此问题? 的彻底解决...
  10. 《史蒂夫·乔布斯传》——童年篇有感
  11. prometheus+grafana搭建监控平台监控压测服务器mysql性能
  12. python 直方图 横向_python绘制直方图
  13. 嵌入式linux下sqlite应用
  14. 程序员分享:最近面试 Java 后端开发的感受
  15. linux 文件-s,linux下文件的特殊权限s和t
  16. python atm作业详解_Python小案例--ATM系统
  17. 智源社区AI周刊No.101:DeepMind推出AlphaTensor登Nature封面;stateof.ai发布AI情况报告...
  18. cfa一级需要计算机吗,CFA一级考试计算机怎么使用?
  19. 无延时直播/超低延时直播实际测试延时效果(项目实测组图)
  20. docker搭建jira

热门文章

  1. 麒麟子Cocos Creator实用技巧五:技能CD效果制作
  2. ZYNQ_DMA控制BRAM读写的地址问题
  3. 硬核的表情包UP主,独树一帜的风格吸引Z世代圈粉。
  4. 树莓派4B ACT指示灯状态表示不同的问题
  5. 关于栈上分配和TLAB的理解
  6. Android12 部分应用(客户大型游戏)使用鼠标点击无效,鼠标模拟触摸点击
  7. WM中Rich Text Format (RTF)格式转换 RichBox组件
  8. 精耕细作——建行广东江门分行以数字化经营推进信用卡业务持续发展
  9. matplotlib绘制堆积折线图
  10. 【宫水三叶的刷题日记】467. 环绕字符串中唯一的子字符串(中等)