当前位置 : 主页 > 网络编程 > lua >

功能 – Lua中的奇怪构造

来源:互联网 收集:自由互联 发布时间:2021-06-23
我正在学习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().

网友评论