Module 代码是什么;局部a=(…)&引用;在所需的脚本中是什么意思?

Module 代码是什么;局部a=(…)&引用;在所需的脚本中是什么意思?,module,lua,require,Module,Lua,Require,在Lua文件中,我得到了以下代码: local mod_name = (...); 我尝试了代码打印(mod_name),得到了文件名“pb”。 整个脚本由require('pb')从另一个脚本调用。 我知道函数中多个参数的(…)的含义,但我对此感到困惑。在脚本主体中,..导致脚本的参数。其功能与arg表相同,请参阅参考手册 for _, v in ipairs{...} do print(v) end 例如,如果使用test.lua arg1 arg2调用它,则会输出: arg1

在Lua文件中,我得到了以下代码:

local mod_name = (...);
我尝试了代码
打印(mod_name)
,得到了文件名
“pb”
。 整个脚本由
require('pb')从另一个脚本调用
我知道函数中多个参数的
(…)
的含义,但我对此感到困惑。

在脚本主体中,
..
导致脚本的参数。其功能与
arg
表相同,请参阅参考手册

for _, v in ipairs{...} do
    print(v)
end
例如,如果使用
test.lua arg1 arg2
调用它,则会输出:

arg1
arg2
请注意,在您的
本地mod_name=(…)
中,由于括号的缘故,仅保留第一个元素



在您的示例中,使用
require('pb')
从另一个脚本调用脚本。在本例中,它加载了两个参数,第一个参数是模块名
'pb'
,第二个参数取决于
require
如何获得加载程序。有关详细信息,请阅读的手册。

..
表示块(例如脚本)或声明为
函数(名为_arg_1,名为_arg_2,…)
函数(…)
的参数列表

列表可以连接到列表,如
{1,2,…}
打印(“args:,…)
。在这些示例中,它用于列表的上下文中。否则,它将仅扩展到第一个值

locala=(…)
中,上下文不是列表,因为括号构成了表达式。因此,它分配
a
第一个值

括号看起来很有风格,因为尽管
locala=…
有一个列表上下文,
a
仍然被分配第一个值。其他示例:
locala,b=…
将第二个值分配给
b
locala,b=(…)
nil
分配给
b



由此可知,
module(…)
调用module作为函数保存的值,并从
列表展开参数列表。

以及“module(…);”的含义是什么?顺便说一句,Lua中的分号是可选的。(在分隔标识符和关键字的地方,可以用空格代替。)但在我的例子中,脚本没有参数,只有“require('test');”。那么“…”应该是零,对吗?@RoyHu你为什么不在问题中显示出来。明白了,非常感谢!谢谢脚本是从“require('test');”调用的,没有更多参数,“…”怎么可能不是nil?因为
require
将其参数传递给加载的块。看见还要注意,以后的Lua版本会添加额外的参数,因此最好像这样调用
模块
函数:
模块((…)
,这样就不会意外地将额外的参数传递给
模块
。谢谢!!我已经测试过了,就在我发现我的测试代码中有一些错误之前。谢谢你的帮助!!