
Как одна забытая local ломает Lua‑код и почему эту ошибку так сложно найти
В Lua достаточно забыть local перед переменной, чтобы получить баг, который может долго оставаться незамеченным. По отдельности функции работают исправно, тесты проходят, а после подключения нового модуля внезапно начинают пропадать данные или меняться результаты вычислений. Разберёмся, как глобальные переменные создают такие ловушки, чем опасны манипуляции с G и ENV и как защитить код от ошибок, зависящих от порядка вызовов и загрузки модулей. Разобраться в проблеме