Metametode Relaționale în Lua: __eq, __lt, __le pentru Comparații în Lua

Sintaxă
__eq, __lt, __le

Lua suportă definirea logicii de comparație între obiecte folosind trei metametode fundamentale: __eq (egalitate ==), __lt (mai mic decât <) și __le (mai mic sau egal <=).

local mt = {
    __eq = function(a, b)
        return a.greutate == b.greutate
    end,
    __lt = function(a, b)
        return a.greutate < b.greutate
    end,
    __le = function(a, b)
        return a.greutate <= b.greutate
    end
}

local pachetA = setmetatable({greutate = 15}, mt)
local pachetB = setmetatable({greutate = 25}, mt)

print(pachetA < pachetB)  -- true (invocă __lt)
print(pachetA > pachetB)  -- false (Lua traduce a > b în b < a)
print(pachetA == pachetB) -- false (invocă __eq)

Optimizare: Pentru operatorii > și >=, Lua inversează automat ordinea operanzilor și utilizează __lt respectiv __le, nefiind nevoie de metode separate.

Comunitate & Schimb de cunoștințe

Întrebări & Exemple de Cod: Metametode Relaționale în Lua: __eq, __lt, __le pentru Comparații

Ai o nelămurire despre utilizarea comenzii Metametode Relaționale în Lua: __eq, __lt, __le pentru Comparații 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.