Menu
Coddy logo textTech

Jenerik Fonksiyon Kullanımı

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

identity'ye T'nin ne olduğunu hiçbir zaman söylemezsin: denetleyici bunu kendi başına çözer. Buna tür çıkarımı denir: Luau, her çağrı noktasında bağıma bakar ve T için çözüm bulur:

local word = identity("Luau")   -- T string olarak çıkarıldı
local count = identity(12)      -- T number olarak çıkarıldı
local flag = identity(false)    -- T boolean olarak çıkarıldı

Her çağrı bağımsızdır: T bir satırda string, sonraki satırda number olabilir. Çıkarılan sonuç, elle yazılmış bir ek açıklama kadar güvenlidir: denetleyiciye göre word bir string'dir; tam otomatik tamamlama ve hata denetimi sunar.

TypeScript'ten önemli bir fark vardır: TS, çağrı noktasında türü identity<number>(5) ile zorlamana izin verir. Luau'da çağrı noktası tür bağımsız değişkenleri yoktur. Bu satır özel bir söz dizimi değildir; bu nedenle Luau açılı parantezleri küçüktür/büyüktür karşılaştırmaları olarak okur ve kod başarısız olur. Türü açıkça belirtmek istediğinde bunun yerine değişkene ek açıklama ekle:

local count: number = identity(12)

Tanıdık bir araçla çıkarımın işleyişini görebilirsin: typeof bir değerin çalışma zamanı tür adını döndürür; bu nedenle print(typeof(identity(12))) number yazdırır: değer, genel işlevden tamamen değiştirilmeden geçti.

challenge icon

Görev

Kolay

Önceki dersteki genel identity işlevi zaten düzenleyicinizde. Tür çıkarımını kullanın.

Denetleyicinin T türünü çıkarmasına izin vererek üç değişken oluşturun (açıklama gerekmez):

  • word: identity işlevini "Luau" ile çağırın
  • count: identity işlevini 12 ile çağırın
  • flag: identity işlevini false ile çağırın

Aşağıdakileri her biri kendi satırında olacak şekilde yazdırın:

  1. word
  2. typeof(word) sonucunu
  3. count
  4. typeof(count) sonucunu
  5. flag
  6. typeof(flag) sonucunu

Kendin dene

-- Önceki dersteki genel identity fonksiyonu
local function identity<T>(value: T): T
    return value
end

-- Kodunuzu buraya yazın
-- 1) word, count ve flag'i identity çağrılarıyla oluşturun (T çıkarılsın)
-- 2) her değeri ardından typeof'u ile yazdırın
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

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

Kendi başına pratik yap: Online Lua derleyicisi