这个 Lua 语言中的代码行是干什么用的?

这行 Lua 语言代码的作用是什么?

module(..., package.seeall)

据我理解,它试图在项目中加载其他库。如果是这样的话,那么我编写的为扩展 Lua 语言标准功能即添加额外函数的 C 文件应该放在哪个位置呢?

点赞
用户3677376
用户3677376

module() 函数用于在 Lua 5.1 中定义 Lua 模块。它的主要可见影响是所有对全局变量的赋值(特别是全局函数定义)都会在模块表中结束而不是全局表中。它通过替换当前环境来实现。不幸的是,这意味着所有读取全局变量的访问也会被重定向到模块表,因此,除非您在 module() 调用之前创建了本地别名,否则您将失去对这些全局变量的访问权限。package.seeall 参数通过在模块表上设置元表来缓解这个缺陷,从而允许您通过模块表访问全局变量。module() 的第一个参数只是模块的名称,而 ... 则保存了通过 require() 调用请求的名称(module() 的一个“特点”是您可以定义与所请求的不同的模块)。无论如何,在 Lua 5.2 中,module() 已弃用,在 Lua 5.3 中默认情况下不可用。有关原因,请参见此处

2016-01-22 15:33:14