function - 如何在Lua中将函数作为参数传递?

标签 function lua

这一切使我感到困惑;所以这就是我想要做的!
因此有一个def:

block_basic_DEF =
{
    image = "button.png",
    name = "basic block",
    obj_table = this_obj_table.common_objects_table,
    startup = function() init(), <----- This is the problem
}


在另一个文件中,我可以访问:

function spawn(params)
    local obj = display.newImage(params.image)
    -- etc.


在该block_basic_DEF中,我希望传递init()函数的地址,以便在生成时可以执行以下操作:

params.startup()-即实际调用原始的init函数

最佳答案

Lua函数只是值,您可以使用它们的名称来分配它们,而无需使用括号:

function init() 
     print("init");
end

block = { 
     startup = init
}


然后像常规函数一样调用它

block.startup()


它接近OOP,但实际上就像函数是正常值一样简单。

如果您想要更类似于lambda的东西,则必须拼写整个函数,省略名称:

startup = function() print("init") end

关于function - 如何在Lua中将函数作为参数传递?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16984540/

相关文章:

python - 在文本 python 中搜索特定单词

sockets - 如何在 Corona SDK Lua 中运行阻塞操作?

windows - "The selected directory is not valid home for Lua SDK"?

c++ - lua的表模拟

lua - 添加交叉引用后如何在 Quarto 中运行 lua 过滤器?

c++ - 当指针引用的值不再存在时冲突输出

javascript - 在多个地方使用相同的随机数 (JavaScript)

Python将其中一个参数代入self

javascript - 将对象的方法作为回调传递的最佳或最常见的方法是什么?

inheritance - Lua 对象不唯一