Lua – require i ‚unrequire’, kasowanie tablic

Czym byłyby języki bez zewnętrznych bibliotek? Niczym, dlatego i Lua je posiada. Zwie się to modułami. Użycie jest banalne z reguły ogranicza się do napisania w programie:

require("moduł")

I później tylko jego używanie. Robi się to różnie – w zależności jak został napisany. A teraz pytanie: jak się pozbyć takiego moduły z pamięci, czyli tytułowe ‚unrequire’? Tu już niestety trzeba nam małej sztuczki:

package.loaded.moduł = nil

W ten sposób nasza biblioteka znika. W dokładnie identyczny sposób możemy kasować części tablic, które w przypadku np. botów z zewnętrznymi pluginami mogą być tablicami w tablicach tablic:

self.cmd[i] = nil

W ten sposób i-ty element został wymazany – jeśli znajdowała się w nim tablica – została zniszczona.