rawequal în Lua: Comparație Primitivă Fără Invocarea Metametodei __eq în Lua

Sintaxă
rawequal(v1, v2)

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.

Comunitate & Schimb de cunoștințe

Întrebări & Exemple de Cod: rawequal în Lua: Comparație Primitivă Fără Invocarea Metametodei __eq

Ai o nelămurire despre utilizarea comenzii rawequal în Lua: Comparație Primitivă Fără Invocarea Metametodei __eq 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.