Funcția rawequal verifică dacă două valori sunt egale în mod primitiv, ocolind orice metametodă __eq configurată pe metatabelele obiectelor comparate.
local mt = {
__eq = function(a, b)
return a.id == b.id
end
}
local user1 = setmetatable({id = 42, nume = "Alice"}, mt)
local user2 = setmetatable({id = 42, nume = "Bob"}, mt)
-- Comparația standard invocă __eq (ambele au id = 42):
print(user1 == user2) -- true
-- Comparația primitivă verifică adresa de memorie a tabelelor:
print(rawequal(user1, user2)) -- false
print(rawequal(user1, user1)) -- true
Identitate vs Echivalență: rawequal determină dacă doi operanzi reprezintă exact aceeași referință în memorie, ignorând egalitatea logică definită prin OOP.
Întrebări & Exemple de Cod:
rawequal în Lua: Comparație Primitivă Fără Invocarea Metametodei __eqAi o nelămurire despre utilizarea comenzii
rawequal în Lua: Comparație Primitivă Fără Invocarea Metametodei __eqsau 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.