前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Lua函数的冒号调用和点调用

Lua函数的冒号调用和点调用

作者头像
bering
发布2020-03-19 10:04:28
3.2K0
发布2020-03-19 10:04:28
举报
文章被收录于专栏:游戏开发之旅游戏开发之旅

lua冒号函数的定义和调用

冒号定义函数中的self指向函数所属表对象,即self是table类型,通过self表可以:访问挂载在该表下的所有冒号定义函数 如,有定义A={},A:b() A:c();函数b,c都是冒号定义函数,在b,c函数内部self是地址指向A的表,在b函数中可以通过self:c()来调用c函数,同理在c函数中也可以通过self:b()来调用b函数 代码示例:

代码语言:javascript
复制
local 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

代码语言:javascript
复制
local 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("第一个参数","第二个参数")
代码语言:javascript
复制
输出《 
------------点调用冒号定义函数---------------
self=	第一个参数	self name=	nil
parm1=	第二个参数
parm2=	nil

冒号调用点定义函数

冒号调用点定义函数,调用者对象表传递给点定义函数的第一个参数,点定义函数内部self=nil

代码语言:javascript
复制
local tb={name="tb"}
function tb.func2(parm1,parm2)
  print("self=",self)
  print("parm1=",parm1)
  print("parm2=",parm2)
end
print("------------冒号调用点定义函数---------------")
--冒号调用点定义函数,调用者对象表传递给点定义函数的第一个参数
tb:func2("第一个参数","第二个参数")
代码语言:javascript
复制
输出《
------------冒号调用点定义函数---------------
self=	nil
parm1=	table: 0x000393c0
parm2=	第一个参数

all:

代码语言:javascript
复制
local 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("第一个参数","第二个参数") 
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • lua冒号函数的定义和调用
  • lua点函数的定义和调用
  • 点调用冒号定义函数
  • 冒号调用点定义函数
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档