代码之家  ›  专栏  ›  技术社区  ›  Asa Ayers

如何将varargs传递到lua文件?

lua
  •  2
  • Asa Ayers  · 技术社区  · 14 年前

    -- This is often at the top of WoW lua files
    local AddonTable = select(2, ...)
    

    有没有一种方法可以用常规的lua来做到这一点?我正在尝试编写一些单元测试,对我当前的代码进行最小的更改。到目前为止,当我只需要使用,我可以使用 select(1, ...)

    更新:

    require ,我可以用 loadfile 做我需要的事。当魔兽世界加载一个加载项时,它会传递加载项的名称和一个可以填充加载项函数的表。我可以用以下代码重现该功能:

    local addon = loadfile('MyAddon.lua')
    local AddonTable = {}
    addon('AddonName', AddonTable)
    
    2 回复  |  直到 14 年前
        1
  •  1
  •   sylvanaar    14 年前

    重新表述您的问题:

    首先要了解wow中发生的一切就是lua文件正在被lua\u加载,然后在堆栈上用2个参数执行结果闭包。

    这类似于require从外部的角度所做的事情,但是当你通过它来思考的时候是不同的。

    Require返回模块-相当于第二个参数的WoW表。所需的参数(模块名称)与第一个参数等效。

        2
  •  3
  •   daurnimator    14 年前

    另外,select调用是不必要的。只要做: local AddonName , AddonTable = ...