lua实现简单的事件监听器

这段时间由于换工作的原因,工作所需要用的开发语言从C换成了lua,我也开始接触lua。

我刚接触lua两天,了解了lua的基本数据类型和语法,就接到了老大分给我的小任务(说是小任务,其实就是老大给我个例子来接触和学习lua),用lua实现简单的事件监听器。我刚听到事件监听器这个词,第一反应是Qt里面用到的signal和slot。当指定的事件(如鼠标点击事件)发生之后,会有一个signal被发送出来,而此时相对应的slot就会被执行。在Qt理解事件监听器的话,我还是比较熟悉的,毕竟我对Qt还是比较熟悉的。现在用lua来实现事件监听器的话,对于刚接触lua的我来说还是有点难度的。这篇博客就是我用lua实现事件监听器的学习记录。

事件监听器实际上就相当于一个注册表。事件监听者在事件监听器中注册一个消息实体,消息实体包括事件、回调函数和实际参数。当事件监听者在事件监听器中注册的事件发生之后,事件监听器会将实际参数传到回调函数中并执行回调函数。这就相当于小明和小红说,等小刚来了之后,你就把这份文件给他。小明说完之后就留了一份文件给小红然后就离开了。在这个过程中,小明就相当于事件监听者,小红相当于事件监听器,而“小刚来了”就相当于事件,“把文件给小刚”就相当于回调函数,而这份文件就相当于实际参数。实际参数是事件监听者在事件监听器中注册事件时留下的参数,而不是等事件发生之后,事件监听器再去询问事件监听者而获得的参数。实际上事件监听者在事件监听器中注册完消息实体之后,就像小明和小红交代事情之后,就离开了一样,事件监听者不需要再去管这个事情。

  • 9
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值