lua冒号函数的定义和调用
冒号定义函数中的self指向函数所属表对象,即self是table类型,通过self表可以:访问挂载在该表下的所有冒号定义函数
如,有定义A={},A:b() A:c();函数b,c都是冒号定义函数,在b,c函数内部self是地址指向A的表,在b函数中可以通过self:c()来调用c函数,同理在c函数中也可以通过self:b()来调用b函数
代码示例:
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15local tb={name="tb"} function tb:func1() print("调用func1") end function tb:func2() print("调用func2") end function tb:test() self:func1() self:func2() end tb:test() --调用func1 --调用func2
lua点函数的定义和调用
总之lua点定义的函数中self=nil,不像冒号定义函数那样可以self指向函数所属对象
点调用冒号定义函数
点调用冒号定义函数,第一个参数传递给self,调用无参时,self=nil
复制代码
1
2
3
4
5
6
7
8
9
10local tb={name="tb"} function tb:func1(parm1,parm2) print("self=",self,"self name=",self.name) print("parm1=",parm1) print("parm2=",parm2) end print("------------点调用冒号定义函数---------------") --点调用冒号定义函数,第一个参数传递给self tb.func1("第一个参数","第二个参数")
复制代码
1
2
3
4
5
6输出《 ------------点调用冒号定义函数--------------- self= 第一个参数 self name= nil parm1= 第二个参数 parm2= nil
冒号调用点定义函数
冒号调用点定义函数,调用者对象表传递给点定义函数的第一个参数,点定义函数内部self=nil
复制代码
1
2
3
4
5
6
7
8
9
10local tb={name="tb"} function tb.func2(parm1,parm2) print("self=",self) print("parm1=",parm1) print("parm2=",parm2) end print("------------冒号调用点定义函数---------------") --冒号调用点定义函数,调用者对象表传递给点定义函数的第一个参数 tb:func2("第一个参数","第二个参数")
复制代码
1
2
3
4
5
6输出《 ------------冒号调用点定义函数--------------- self= nil parm1= table: 0x000393c0 parm2= 第一个参数
all:
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22local tb={name="tb"} function tb:func1(parm1,parm2) print("self=",self,"self name=",self.name) print("parm1=",parm1) print("parm2=",parm2) end function tb.func2(parm1,parm2) print("self=",self) print("parm1=",parm1) print("parm2=",parm2) end print("------------冒号调用冒号定义函数---------------") --冒号调用冒号定义函数 tb:func1("第一个参数","第二个参数") print("------------点调用冒号定义函数---------------") --点调用冒号定义函数,第一个参数传递给self tb.func1("第一个参数","第二个参数") print("------------冒号调用点定义函数---------------") --冒号调用点定义函数,调用者对象表传递给点定义函数的第一个参数 tb:func2("第一个参数","第二个参数")
最后
以上就是迷路酸奶最近收集整理的关于Lua函数的冒号调用和点调用的全部内容,更多相关Lua函数内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复