В мире Warcraft аддонов, таблица передается как второй vararg:Как передать varargs в файлы lua?
-- This is often at the top of WoW lua files
local AddonTable = select(2, ...)
Есть ли способ сделать это с регулярным Lua? Я пытаюсь написать некоторые модульные тесты с минимальными изменениями в моем текущем коде. Пока я просто использую require, я могу использовать select(1, ...)
, чтобы получить первый требуемый параметр (модуль), но я не могу понять, как заполнить второй аргумент.
Update:
Вместо использования require
, я могу использовать loadfile
делать то, что мне нужно. Когда World Of Warcraft загружает аддон, он передает имя аддона и таблицу, которая может быть заполнена функциями вашего аддона. Я могу воспроизвести эту функциональность с этим кодом:
local addon = loadfile('MyAddon.lua')
local AddonTable = {}
addon('AddonName', AddonTable)
Мне не нужно использовать AddonName, мне просто нужно передать его для совместимости. –
еще дешевле назначить его (и не использовать), чем называть select; но я думаю, что я просто собираю nit ... Обычная практика заключается в том, чтобы присваивать значения throw _ (например, когда вы используете string.find), но если вы знаете их смысл, вы можете также дать им имя. .. – daurnimator