lua 中 . 和 : 的区别
来源:互联网 发布:新星星知我心 编辑:程序博客网 时间:2024/06/10 09:26
lua 中 . 和 : 的区别
首先在lua中使用“:”定义的函数会自动传入一个名为self的变量,这个变量是隐含的,self同c++中的this一样,表示当前对象的指针:而“.”定义的函数中没有self。
function class:func2( ) end function class.func1(self) end --这时候这两个函数等价
function MainScene:ctor() self:ceshi(1,2,3)endfunction MainScene:ceshi(a,b,c) print(a,b,c)end输出:1 2 3
分析:默认传self,默认接受self。
function MainScene:ctor() self:ceshi(1,2,3)endfunction MainScene.ceshi(a,b,c) --注意是. print(a,b,c)end输出:userdata 1 2
分析:调用ceshi函数时用的:默认传递self为第一个参数,但是函数声明的时候用的 . 所以不会有默认隐藏的self去接收,此时传递参数为 self 1 2 3 但是ceshi函数只接收3个参数所以3被抛弃。
function MainScene:ctor() self.ceshi(1,2,3) --注意是.endfunction MainScene.ceshi(a,b,c) --注意是. print(a,b,c)end输出:1 2 3
分析:默认不传递self,默认不接受self
function MainScene:ctor() self.ceshi(1,2,3) --注意是.endfunction MainScene:ceshi(a,b,c) print(self) print(a,b,c)end输出:1 2 3 nil
分析:函数调用时用的 . 不会传递self 只传递1 2 3,而ceshi函数声明时用的 : 默认有一个self在第一位去接收,ceshi函数能接收4个参数,即 self a b c ,所以c没有接收参数为nil。
在lua中模拟面向对象编程中,可以用 . 来表示类方法,而 : 可以用来表示成员方法。
以上内容不能保证一定正确,有什么疑问可以留言共同探讨。
0 0
- lua 中 . 和 : 的区别
- lua中.和:区别
- Lua中 Pairs和ipairs的区别
- lua中require和module的区别
- lua 中pair 和ipair的区别
- Lua中pairs和ipairs的区别
- LUA中ipairs和pairs的区别
- LUA中pairs和ipairs的区别
- lua 中pairs 和 ipairs的区别
- lua中 点(.)和冒号(:)的区别
- lua 中pairs 和 ipairs的区别
- Lua中ipairs和pairs的区别
- Lua中调用.和:的区别
- Lua语言中pairs和ipairs的区别
- Lua语言中pairs和ipairs的区别
- LUA中pairs和ipairs的区别(收藏)
- Lua语言中pairs和ipairs的区别
- Lua语言中pairs和ipairs的区别
- 【SPOJ-TSHOW1】Amusing numbers【二进制】
- 关于mysql如何添加InnoDB
- 栈stack和队列queue的常用基本函数
- 2016年全国研究生招生考试成绩
- innodb 多版本并发控制原理详解
- lua 中 . 和 : 的区别
- 前端与移动开发---菜鸟进阶计划002
- 台湾大学林轩田老师机器学习基石:内容简介
- android Hanlder原理分析
- 蓝桥杯 历届试题 错误票据 java详解
- IOS学习 UIViewController 视图控制器的创建
- nodejs 链接数据库的一些代码
- chrome developer tool 调试技巧
- ELK+Redis日志分析平台测试性能记录