繁体   English   中英

如何将varargs传递给lua文件?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM