加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Lua 入门学习教程(二) 函数 与 回调函数

发布时间:2020-12-14 21:58:17 所属栏目:大数据 来源:网络整理
导读:还记得开始学C语言的时候,书上就拿两个数相加?作为例子,来介绍函数。我也拿?Add?来说吧。 函数的简单写法就像下面的Add local function Add( a,b )-- bodyprint(a+b)endAdd(10,20) 然后面向对象 local MathTools={}function MathTools:Add( a,b )-- bodypr

还记得开始学C语言的时候,书上就拿两个数相加?作为例子,来介绍函数。我也拿?Add?来说吧。

函数的简单写法就像下面的Add

local function Add( a,b )
	-- body
	print(a+b)
end

Add(10,20)

然后面向对象

local MathTools={}

function MathTools:Add( a,b )
	-- body
	print(a+b)
end

MathTools.Add(self,10,20)
MathTools:Add(10,20)

如果使用 点?来调用函数,第一个参数必须是?self ,self的作用是指明函数作用与谁。

如果使用冒号?来调用函数,就可以省略self,这是语法糖。


回调函数?通过游戏中的网络消息分发来说吧


比如我游戏中有一个?NetMsgDispatcher.lua,作为被监听者存在。游戏的各个模块观察者 在一开始会注册回调函数。

有两种解决方法

1、使用匿名函数,像下面这么写。

测试代码


2、注册回调函数的时候,把?self?也一起注册进去

测试代码


总之遵循一个原理:

如果使用 点?来调用函数,第一个参数必须是?self ,self的作用是指明函数作用与谁。回调函数也是如此!

如果使用冒号?来调用函数,就可以省略self,这是语法糖。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读