Tabelele package.loaded și package.preload controlează mecanismul intern de caching și înregistrare prealabilă a modulelor gestionate prin require().
-- 1. Preîncărcarea unui modul virtual fără a avea fișier pe disc:
package.preload["matematica.rapida"] = function()
local modul = {}
function modul.suma(a, b) return a + b end
return modul
end
-- Apelarea require va rula loader-ul definit mai sus:
local mr = require("matematica.rapida")
print(mr.suma(10, 20)) -- 30
-- 2. Forțarea reîncărcării (hot-reload) a unui modul existent de pe disc:
local function reincarcaModul(numeModul)
package.loaded[numeModul] = nil -- Șterge instanța din cache
return require(numeModul) -- Reîncarcă și recompilează fișierul
end
Mecanismul package.loaded: Când se apelează require(nume), Lua verifică mai întâi dacă package.loaded[nume] există. Dacă este găsit, returnează valoarea stocată fără a citi fișierul de pe disc.
Întrebări & Exemple de Cod:
package.loaded și package.preload în Lua: Caching și Preîncărcarea ModulelorAi o nelămurire despre utilizarea comenzii
package.loaded și package.preload în Lua: Caching și Preîncărcarea Modulelorsau ai descoperit un truc / fragment de cod util? Distribuie-l cu ceilalți programatori!Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!
Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.