function - lua中的全局函数

标签 function lua global

有没有办法在 Lua 中拥有一个可以从项目中的任何模块访问的函数,而无需首先要求它?

就像是:

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

并从其他地方调用它,比如 main
--main

globFoo();

不需要它?

最佳答案

一个模块只是一个 Lua 脚本。你可以在那里做任何你想做的事;您甚至不必调用 module在您的模块脚本中。确实,modulegenerally considered harmful these days ,这就是它在 Lua 5.2 中被弃用的原因。

实际上,只需移动代码即可:

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

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

关于function - lua中的全局函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11907169/

相关文章:

c++ - 函数模板的 typedef 的最佳替代方案?

lua - 如何使 Lua 脚本不可反编译?

c# - asp.net c# 如何统计网站访问量

java - 我必须从多次调用的函数中返回一个值,但我无法做到这一点

javascript - var myFunction = function 函数名()

javascript - 为什么在数组中使用 javascript 函数不起作用?

c - c中的全局变量

android - cocos2d-x 运行一个lua脚本两次

c - 在 Solaris SPARC 上编译 Lua 时有很多警告?

c++ - 避免在 C++ 库中使用全局对象