Menu
Coddy logo textTech

Jenerik Bir Kimlik (Identity) Fonksiyonu

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

İşte doğru şekilde yapılan identity function — bir generic function olarak:

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

function isminden sonra gelen <T> bir type parametresi bildirir — "her call işleminde karar verilen bir type" anlamına gelen bir yer tutucudur. İmza içinde T ifadesini tıpkı gerçek bir type gibi kullanırsınız: parametre bir T'dir ve function bir T return eder.

Girdi ve çıktı için aynı T kullanmak bütün püf noktasıdır — bu durum them öğelerini birbirine bağlar. identity("hello") call edin ve denetleyici bu call için T = string olduğuna karar verir, böylece result bir string olur. identity(42) call edin ve T = number olur, böylece result bir number olur. One gövde, every type, hiçbir şey kaybolmaz.

T sadece geleneksel bir isimdir ("Type" kısaltması) — <Item> veya <Value> da aynı derecede iyi çalışır. Ve Luau dilinde her zaman olduğu gibi, açılı ayraçlar yalnızca denetleyici içindir: çalışma zamanında bu sadece düz Lua function function identity(value) return value end şeklindedir.

challenge icon

Görev

Kolay

Şu özelliklere sahip identity adında generic bir fonksiyon oluşturun:

  • T adında bir tip parametresi bildirsin
  • T tipinde value adında bir parametre kabul etsin
  • T dönüş tipiyle, bu değeri geri döndürsün

Ardından fonksiyonunuzu kullanarak şu tiplendirilmiş değişkenleri oluşturun:

  • number tipinde luckyNumberidentity fonksiyonunu 7 ile çağırın
  • string tipinde greetingidentity fonksiyonunu "Hello, Luau!" ile çağırın
  • boolean tipinde isReadyidentity fonksiyonunu true ile çağırın

Aşağıdakileri her biri ayrı bir satırda olacak şekilde yazdırın:

  1. luckyNumber
  2. greeting
  3. isReady
  4. doğrudan print içinde identity fonksiyonunu "generics" ile çağırmanın sonucu
  5. doğrudan print içinde identity fonksiyonunu 99 ile çağırmanın sonucu

Kendin dene

-- Kodu buraya yaz
-- 1) identity<T>(value: T): T tanımla
-- 2) luckyNumber, greeting ve isReady'i identity çağrılarıyla oluştur
-- 3) bunları yazdır, sonra identity("generics") ve identity(99) yazdır
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