全局函数在lua中。

有没有一种在 Lua 中可以从项目中的任何模块访问的函数,而不必先要求它?

例如:

module(..., package.seeall);
function globFoo()
       print('global foo called');
end

并且可以从其他地方调用它,如主要部分

--main

globFoo();

不需要要求它吗?

点赞
用户734069
用户734069

一个模块就是一个 Lua 脚本。在这里,你可以随心所欲地做任何事情;你甚至不必在你的模块脚本中调用 module。事实上,如今 module 通常被认为是有害的,这就是为什么它在 Lua 5.2 中被弃用的原因。

实际上,这只是简单地移动你的代码:

function globFoo()
       print('global foo called');
end
module(..., package.seeall); --在 global 函数之后创建模块

所以,是的,你可以让一个模块修改全局表。我很强烈建议你不要这样做(因为它会在 Lua 脚本之间创建隐式排序,这使得很难知道哪个脚本使用哪些东西)。但你可以这样做。

2012-08-10 18:28:21
用户1894557
用户1894557

在 global.lua (全局函数所在的地方):

globalFunction1 = function(params)
    print("我是 globalFunction1")
end

在调用文件 caller.lua:

globalFunction1(params)    -- 这会调用上面的全局函数
2013-07-09 03:27:22