Metatabele și Programare Orientată pe Obiecte (OOP) cu setmetatable în Luau în Luau (Roblox Studio)

Ghid complet pentru metatabele și OOP în Luau: metametoda __index, crearea claselor cu constructori .new(), moștenirea și instanțierea obiectelor în Roblox Studio.

Sintaxă
setmetatable(obiectNou, { __index = SablonClasa })

Luau nu dispune de cuvântul-cheie class din alte limbaje orientate pe obiecte, dar implementează modelul OOP bazat pe prototipuri prin intermediul metatabelelor și al metametodei __index. Când un membru sau o metodă nu este găsită direct pe instanță, Luau caută automat în tabela prototip delegată.

Implementarea unei clase Jucator în Luau OOP
--!strict

local Jucator = {}
Jucator.__index = Jucator

export type TipJucator = typeof(setmetatable({} :: {
    nume: string,
    viata: number,
    viteza: number
}, Jucator))

-- Constructorul clasei:
function Jucator.new(nume: string): TipJucator
    local self = setmetatable({}, Jucator)
    self.nume = nume
    self.viata = 100
    self.viteza = 16
    return self
end

-- Metodă pe instanță:
function Jucator:PrimesteDaune(cantitate: number)
    self.viata = math.max(0, self.viata - cantitate)
    print(`[Jucator] {self.nume} mai are {self.viata} viață.`)
end

-- Utilizare:
local erou = Jucator.new("Radu_Knight")
erou:PrimesteDaune(35)
Comunitate & Schimb de cunoștințe

Întrebări & Exemple de Cod: Metatabele și Programare Orientată pe Obiecte (OOP) cu setmetatable în Luau

Ai o nelămurire despre utilizarea comenzii Metatabele și Programare Orientată pe Obiecte (OOP) cu setmetatable în Luau 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.