Jenerik Diziler
Coddy'nin Lua Journey'sinin Luau'ya Giriş bölümünün bir parçası. Ders 64 / 80.
Generic’ler, işin içine tablolar girdiğinde gerçekten kullanışlı hâle gelir. Türü belirtilmiş dizileri zaten {number} veya {string} olarak yazıyorsun. Generic bir işlevin içinde eleman türü doğrudan T olabilir ve {T}, “T ne çıkarsa çıksın ondan oluşan bir dizi” anlamına gelir.
Klasik örnek şöyle: herhangi bir dizinin ilk elemanını almak:
local function first<T>(items: {T}): T?
return items[1]
endBir {string} geçirirsen denetleyici T = string olduğunu çıkarır, dolayısıyla sonuç bir string olur. Bir {number} geçirirsen sonuç bir sayı olur. Tek bir işlev, tür başına yazılmış bir sürü kopyanın yerini alır.
Dönüş türüne dikkatlice bak: T değil, T?. Bir dizi boş olabilir; bu durumda items[1] değeri nil olur. Daha önce gördüğün isteğe bağlı tür bunu açıkça ifade eder: “bir T veya nil”. Denetleyici, sonucu kullanmadan önce çağıranları nil durumunu ele almaları için uyarır; tür denetimli bir dilden beklediğin hata yakalama tam da budur.
Görev
KolayHerhangi bir dizinin ilk elemanını alın.
local function first<T>(items: {T}): T?yazın;items[1]değerini döndürsün.local fruits: {string} = {"apple", "banana"}velocal empty: {number} = {}tanımlayın.- Önce
first(fruits), ardındanfirst(empty)değerini yazdırın.
Run Code düğmesine basın: çıktıda apple ve nil görünür.
Kendin dene
-- 1) first<T>(items: {T}): T?
-- 2) fruits: {string} ve boş bir {number}
-- 3) her birinin ilk öğesini 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’lerKendi başına pratik yap: Online Luau derleyicisi