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

功能 – Lua中的奇怪构造

发布时间:2020-12-14 21:46:21 所属栏目:大数据 来源:网络整理
导读:我正在学习Lua并遇到以下构造: button.action = function() buttonPressed() end 它是一样的吗? button.action = buttonPressed() end ? 我知道button.action被赋予了buttonPressed()返回的值,但是为什么要将它包装成这样的匿名函数呢? 解决方法 “我知
我正在学习Lua并遇到以下构造:

button.action = function() buttonPressed() end

它是一样的吗?

button.action = buttonPressed() end

我知道button.action被赋予了buttonPressed()返回的值,但是为什么要将它包装成这样的匿名函数呢?

解决方法

“我知道button.action被赋予了buttonPressed()返回的值,但是为什么要将它包装成这样的匿名函数呢?”

你理解错了.该声明:

button.action = function() buttonPressed() end

将button.action分配给一个匿名函数,该函数在被调用时将依次执行调用buttonPressed().请注意,匿名函数不返回任何内容,因此仅为其副作用调用它.这是回调的常见习语.您使用匿名函数来延迟执行某些代码(在这种情况下,只调用buttonPressed),直到您需要执行它为止.

鉴于你的代码片段的名称,我猜这个代码设置了按下某个按钮时要执行的操作.当按下按钮时,动作被触发(代码内部的某处会有一个调用,如button.action()调用存储在button.action中的匿名函数)并执行调用buttonPressed().

(编辑:李大同)

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

    推荐文章
      热点阅读