Перейти к содержанию

Динамическая загрузка кода из модулей и сброс


MasterGH

Рекомендуемые сообщения

Например Вы запустили скрипт *.CETRAINER из некоторой директории в которой есть файл DownloadXM.lua, содержащий код.


require("Hello")

Эта директория становится директорией по умолчанию и все Lua файлы в ней можно вызывать без указания полного пути.


require("DownloadXM")

Вы получите ответ:

 Hello

Вы решили исправить DownloadXM.lua:


require("Hello, user!")

Но если вы теперь снова напишите:


require("DownloadXM")

Вы получите старый ответ:

Hello

Т.е. ваш старый модуль уже подгрузился в память, а новый не подгружается. Таким образом всё что было в старом модуле: переменные, функции и т.п. всё остаётся старым. Так как же загрузить модуль заново и при этом не запускать повторно *.CETRAINER?

Для этого нужно написать следующее:


package.loaded["DownloadXM"] = nil
require("DownloadXM")

И тогда вы увидите уже:

Hello, user!

Поэтому ключевой момент этой темы это использование:


package.loaded["Ваш модуль"] = nil

Ссылка на комментарий
Поделиться на другие сайты

×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.