Получение "индекс таблицы ноль" с индексом строки - PullRequest
0 голосов
/ 02 мая 2020

Итак, я сейчас работаю над созданием блоков кодов, которые могут вызываться одновременно по имени. Я решил сделать это с основной таблицей, которая содержит таблицу с идентификатором и с функциями. Чтобы сделать это, я написал 3 функции

function hook.add(name, hookname, func)
    hooks[hookname[name]] = func
end
function hook.create(name)
    hooks[name] = {}
end
function hook.run(name)
    for _, func in pairs(hooks[name]) do
        func()
    end
end


hook.create("MainHook")
    local function func()
        print("working")
    end
    hook.add("todo", "MainHook", func)

Однако он не работает и вылетает с

bin/hooks.lua:27: table index is nil

Ошибка содержится в

hooks[hookname[name]] = func

строке, но у меня нет Идея почему, потому что даже если я напишу hookname и name, ноль вообще не будет.

1 Ответ

1 голос
/ 02 мая 2020

Ваша функция hook.create создает пустую таблицу для имени, поэтому функция hook.add должна выглядеть следующим образом:

function hook.add(name, hookname, func)
    -- create hooks[hookname] table if not exists
    hooks[hookname] = hooks[hookname] or {}
    -- add function to hooks[hookname] table
    hooks[hookname][name] = func
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...