Module 代码是什么;局部a=(…)&引用;在所需的脚本中是什么意思?
在Lua文件中,我得到了以下代码: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
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版本会添加额外的参数,因此最好像这样调用模块
函数:模块((…)
,这样就不会意外地将额外的参数传递给模块
。谢谢!!我已经测试过了,就在我发现我的测试代码中有一些错误之前。谢谢你的帮助!!