Funcțiile setmetatable și getmetatable controlează asocierea comportamentelor extinse (metatabele) la nivelul tabelelor, stând la baza sistemului de metaprogramare și OOP din Lua.
local MetaConfig = {
__metatable = "Acces interzis!" -- Protejează metatabela împotriva modificărilor
}
local configurare = {}
setmetatable(configurare, MetaConfig)
-- Verificarea metatabelei
local mt = getmetatable(configurare)
print(mt) -- Afișează: "Acces interzis!"
-- Încercarea de a suprascrie metatabela protejată va eșua:
-- setmetatable(configurare, {}) -- Eroare: cannot change a protected metatable
Câmpul __metatable: Dacă metatabela conține cheia __metatable, getmetatable returnează acea valoare, iar setmetatable va refuza să o schimbe, oferind încapsulare completă.
Întrebări & Exemple de Cod:
setmetatable și getmetatable în Lua: Asocierea și Inspectarea MetatabelelorAi o nelămurire despre utilizarea comenzii
setmetatable și getmetatable în Lua: Asocierea și Inspectarea Metatabelelorsau 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.