在某些lua包文件的开头,有时会有一行local base = _G
或local base = ...
。
答案 0 :(得分:1)
对于第一个问题,您可以参考:Why make global Lua functions local?
对于你的第二个,
这两行之间的区别是什么?
执行local base = _G
时,您将base
指定为全局环境表的同义词。另一方面,在声明local base = ...
; ...
引用了lua的vararg
feature。
可以通过以下示例更详细地显示:
local a = {...}
for k, v in pairs(a) do print(k, v) end
然后按如下方式执行:
─$ lua temp.lua some thing is passed "here within quotes"
1 some
2 thing
3 is
4 passed
5 here within quotes
如您所见,...
只是传递给程序的参数列表。现在,当你有
local base = ...
lua将第一个参数赋给变量base
。上述声明中将忽略所有其他参数。