[英]How can I pass varargs to lua files?
在《魔兽世界》插件中,一个表作为第二个变量传递:
-- This is often at the top of WoW lua files
local AddonTable = select(2, ...)
有没有办法用常规的lua做到这一点? 我试图编写一些单元测试,而对当前代码的更改最少。 到目前为止,当我只使用require时,我可以使用select(1, ...)
来获取第一个参数require(模块),但似乎无法弄清楚如何填充第二个参数。
更新:
除了使用require
,我还可以使用loadfile
来完成所需的工作。 当《魔兽世界》加载插件时,它将传递插件的名称和一个可以用插件功能填充的表格。 我可以使用以下代码重现该功能:
local addon = loadfile('MyAddon.lua')
local AddonTable = {}
addon('AddonName', AddonTable)
同样,选择呼叫也是不必要的。 只需: local AddonName , AddonTable = ...
重述您的问题:
首先要了解哇,这是因为lua文件正在被lua_loadfile加载,然后在堆栈上使用2个参数执行生成的闭包。
从外部的角度来看,这与需求的做法相似,但是从整体上看,需求是不同的。
Require返回模块-与第二个论点的WoW表等效。 需要的参数(模块名称)与第一个参数等效。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.