Menu
CoddyTech

Jenerik Bir Kimlik (Identity) Fonksiyonu

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

İşte doğru şekilde yazılmış, jenerik bir fonksiyon olarak özdeşlik fonksiyonu:

local function identity<T>(value: T): T
    return value
end

Fonksiyon adından sonra gelen <T>, bir tür parametresi bildirir: “her çağrıda belirlenen bir türü” temsil eden bir yer tutucu. İmzanın içinde T'yi gerçek bir tür gibi kullanırsın: parametre bir T'dir ve fonksiyon bir T döndürür.

Girdi ve çıktı için aynı T'yi kullanmak işin püf noktasıdır. İkisini birbirine bağlar. identity("hello") çağrısını yap ve denetleyici bu çağrı için T = string olduğuna karar versin; böylece sonuç bir string olur. identity(42) çağrısını yap ve T = number olsun; böylece sonuç bir number olur. Tek bir gövde, her tür, hiçbir şey kaybolmaz.

T yalnızca geleneksel bir addır (“Tür”ün kısaltması): <Item> veya <Value> da aynı şekilde kullanılabilir. Luau'da her zaman olduğu gibi, açılı ayraçlar yalnızca denetleyici içindir: çalışma zamanında bu, sıradan Lua fonksiyonu function identity(value) return value end olur.

challenge icon

Görev

Kolay

Türünü koruyarak herhangi bir değeri döndüren bir işlev yaz.

  1. local function identity<T>(value: T): T yaz; value değerini döndürsün.
  2. local luckyNumber: number = identity(7) ve local greeting: string = identity("Hello, Luau!") tanımla.
  3. Önce luckyNumber, sonra greeting değerini yazdır.

Kodu Çalıştır düğmesine bas: çıktıda 7 ve Hello, Luau! görünür.

Kendin dene

-- 1) identity<T>(value: T): T
-- 2) identity çağrılarından luckyNumber ve greeting
-- 3) ikisini de yazdır

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

Kendi başına pratik yap: Online Luau derleyicisi