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.
Görev
KolayDikdörtgen şekline, alanını hesaplayan bir yöntem ekle.
type Rectangle = {width: number, height: number, area: (self: Rectangle) -> number}yaz.- Genişliği
4, yüksekliği6vearea = function(self: Rectangle): numberdeğeriself.width * self.heightdöndürenlocal rect: Rectangleoluştur. - Önce
rect.area(rect), ardındanrect.widthdeğ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
1Luau ile Başlarken
Luau Nedir?Neden Luau Kullanılmalı?İlk Luau KodunuzTip Denetimi ve Hata ModlarıÖzet: Luau'ya Giriş4Fonksiyonlarla Çalışma
Parametreleri ve Dönüş Değerlerini Tür BelirtmeAnonim Fonksiyonları Tür BelirtmeDeğer Döndürmeyen Fonksiyonlarİsteğe Bağlı ParametrelerVarsayılan Parametre DeğerleriBoolean Değerler için VarsayılanlarDeğişken Sayıda Parametre Alan FonksiyonlarFonksiyon Türlerini TanımlamaTekrar: Tür Belirtilmiş Fonksiyonlar2Temel Türler
Number, String ve Boolean'any' Türü: Kaçış Yolu'unknown' TürüNil ve İsteğe Bağlı TürlerTür Çıkarımı UygulamadaAçık Tür Ek AçıklamalarıTekrar: Temel Türler Alıştırması5Diğer Adlar (Aliases), Birleşimler, Kesişimler
İlkel Tipler için Tip Diğer Adları (Type Aliases)Birleşim Tipleri (Union Types)Birleşim Tipleri ile ÇalışmakLiteral (Sabit) TiplerKesişim Tipleri (Intersection Types)Tip Diğer Adlarını BirleştirmeÖzet: Gelişmiş Tip Kombinasyonları3Türlenmiş Tablolar: Diziler ve Map’ler
Türlenmiş DizilerÖğe Ekleme ve OkumaMap Türü Nedir?Map’leri Tanımlama ve ErişmeTablolar Üzerinde YinelemeKarma Şekilli TablolarBir Izgarayı OkumaBir Izgara Oluşturmatable.unpackÖzet: Diziler ve Map’ler6Tablo Biçimlerini Tiplendirme
Satır İçi Biçim AçıklamalarıBiçimler İçin Tip Takma Adlarıİsteğe Bağlı ÖzelliklerBiçimler ve Serbest TablolarBiçimleri GenişletmeBiçimlere Metot EklemeSelf ve İki Nokta MetotlarıÖzet: Tablo Biçimlerini TanımlamaKendi başına pratik yap: Online Luau derleyicisi