Menu
CoddyTech

Biçimlere Metot Ekleme

Coddy'nin Lua Journey'sinin Luau'ya Giriş bölümünün bir parçası. Ders 44 / 80.

Lua OOP bölümünden, tabloların diğer değerler gibi fonksiyonlar da tutabildiğini biliyorsun. Şekiller bu fonksiyon alanlarını da tanımlayabilir: böylece bir şekil, veri ve davranıştan oluşan küçük bir sözleşmeye dönüşür.

Bir metot alanı, fonksiyonlar bölümünde öğrendiğin fonksiyon türü söz dizimini kullanır. İlk parametresine geleneksel olarak self adı verilir; bu, metodun ait olduğu tablodur ve şekil kendisine bile başvurabilir:

type Greeter = {
    name: string,
    greet: (self: Greeter) -> string,
}

Şekli uygulamak için alanda bir fonksiyon sakla ve ona self parametresini ver:

local greeter: Greeter = {
    name = "Ana",
    greet = function(self: Greeter): string
        return `Hello, I'm {self.name}`
    end,
}

Metodu çağırmak, tabloyu self olarak kendin geçirmen anlamına gelir: greeter.greet(greeter). Metot, self üzerinden hangi tablo üzerinde çağrıldıysa o tablonun alanlarını okur.

Tabloyu iki kez yazmak zahmetli geliyor ve Lua'nın çözümünü zaten biliyorsun: iki nokta. Bir sonraki ders, : söz dizimini bu tür tanımlı şekillere bağlayacak.

challenge icon

Görev

Kolay

Dikdörtgen şekline, alanını hesaplayan bir yöntem ekle.

  1. type Rectangle = {width: number, height: number, area: (self: Rectangle) -> number} yaz.
  2. Genişliği 4, yüksekliği 6 ve area = function(self: Rectangle): number değeri self.width * self.height döndüren local rect: Rectangle oluştur.
  3. Önce rect.area(rect), ardından rect.width değerini yazdır.

Kodu Çalıştır düğmesine bas: çıktı 24 ve 4 değerlerini gösterir.

Kendin dene

-- 1) width, height ve area metoduna sahip Rectangle türünü tanımla
-- 2) area metodu uygulanmış, width değeri 4 ve height değeri 6 olan yerel rect: Rectangle değişkenini tanımla
-- 3) önce area değerini, sonra width değerini yazdır

Luau'ya Giriş bölümündeki tüm dersler

Kendi başına pratik yap: Online Luau derleyicisi