Menu
CoddyTech

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]
end

Bir {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.

challenge icon

Görev

Kolay

Herhangi bir dizinin ilk elemanını alın.

  1. local function first<T>(items: {T}): T? yazın; items[1] değerini döndürsün.
  2. local fruits: {string} = {"apple", "banana"} ve local empty: {number} = {} tanımlayın.
  3. Önce first(fruits), ardından first(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

Kendi başına pratik yap: Online Luau derleyicisi