Nou Generator de prompt AI — scrie prompturi mai bune pentru ChatGPT, Claude și Gemini →

Metametoda __mode în Lua: Tabele Slabe (Weak Tables) și Memorie în Lua

Sintaxă
__mode = 'k' | 'v' | 'kv'

Câmpul __mode dintr-o metatabelă transformă tabela respectivă într-o tabelă cu referințe slabe (weak table). În aceste tabele, cheile sau valorile pot fi colectate de Garbage Collector dacă nu mai există alte referințe puternice către ele.

-- Cache memoizat cu valori slabe (weak values)
local cacheRezultate = setmetatable({}, { __mode = "v" })

local function calculeazaHeavy(id)
    if cacheRezultate[id] then
        return cacheRezultate[id]
    end
    local rezultat = {val = id * 100, timestamp = os.time()}
    cacheRezultate[id] = rezultat
    return rezultat
end

local r1 = calculeazaHeavy(1)
print(cacheRezultate[1].val) -- 100

r1 = nil -- Eliminăm singura referință puternică din program
collectgarbage("collect") -- GC colectează obiectul din tabela slabă

print(cacheRezultate[1]) -- nil (a fost curățat automat din cache!)

Configurări posibile: __mode = "k" (chei slabe), __mode = "v" (valori slabe), __mode = "kv" (atât cheile cât și valorile sunt slabe).

Comunitate & Schimb de cunoștințe

Întrebări & Exemple de Cod: Metametoda __mode în Lua: Tabele Slabe (Weak Tables) și Memorie

Ai o nelămurire despre utilizarea comenzii Metametoda __mode în Lua: Tabele Slabe (Weak Tables) și Memorie 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.