package.loaded și package.preload în Lua: Caching și Preîncărcarea Modulelor în Lua

Sintaxă
package.loaded[modname]
package.preload[modname] = loader_func

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.

Comunitate & Schimb de cunoștințe

Întrebări & Exemple de Cod: package.loaded și package.preload în Lua: Caching și Preîncărcarea Modulelor

Ai o nelămurire despre utilizarea comenzii package.loaded și package.preload în Lua: Caching și Preîncărcarea Modulelor sau 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.

Comunitate Adaugă o întrebare sau distribuie un cod

Moderare & Siguranță:

Pentru a menține calitatea și securitatea informațiilor, fiecare întrebare sau fragment de cod/prompt este analizat (manual sau prin moderare asistată de AI) înainte de publicare.