所以我有一个按钮类,我在其中创建我的按钮:
self.button = widget.newButton {..., onEvent = handleEvent)
我想在我的主要部门打电话给那个按钮课程,所以我正在做:
local button = Button:new(..., handle)
事情是我的所有事件处理程序都位于我的按钮类中。 如何从类外部传递事件处理程序的名称?
我不能把它作为句柄传递给"处理" ... 我想我必须将它作为函数传递,但我该怎么办呢?
答案 0 :(得分:1)
Lua中的职能是一流的公民,可以像任何其他价值观一样对待;它们可以分配给变量或作为函数参数传递。
local function cb() ... end
local button = Button:new(..., cb)
或者没有局部变量。
local button = Button:new(..., function() ... end)
如果要在按钮类上调用方法,也可以使用闭包来执行此操作:
self.button = widget.newButton {..., onEvent = function() return self:onPressed() end)