Menu
Coddy logo textTech

Birleşim Tipleri (Union Types)

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

Bazen tek bir tür yeterli olmaz. Bir kullanıcı kimliği "user123" veya 42 olarak gelebilir. Düz Lua'da yalnızca en iyisini umardınız; Luau size birleşim türleri sunar: dikey çizgi | “veya” anlamına gelir:

local userId: number | string

userId = "user123"  -- ✓ bir string'e izin verilir
userId = 42          -- ✓ bir number'a izin verilir
userId = true        -- ✗ tip hatası: boolean union'da değil

Değişken, birleşimin üyelerinden herhangi birini ve yalnızca onları tutabilir. any türünden temel fark budur: birleşim, ihtiyacınız olan esnekliği sağlarken nelerin kullanılabileceği konusunda katı kalır.

Birleşimler, birden fazla girdi biçimini kabul eden işlev parametreleri için özellikle kullanışlıdır:

function printId(id: number | string): ()
    print(id)
end

printId(42)          -- bir sayı ile çalışır
printId("user123")   -- bir string ile çalışır

string? türünü zaten biliyorsunuz. Bu, ilk birleşiminizdi! Basitçe string | nil ifadesinin kısa yazımıdır. Sonraki derste, bir birleşim değerine sahip olduğunuzda onunla güvenli bir şekilde nasıl çalışacağınızı öğreneceksiniz.

challenge icon

Görev

Kolay

printId adlı, id: number | string alan ve bunu yazdıran bir işlev oluştur: açık dönüş türü ().

"<code>active" ile başlatılmış, string | number türünde status adlı bir değişken tanımla.

Ardından, sırayla:

  1. printId(42) çağrısını yap
  2. printId("<code>user123") çağrısını yap
  3. status değerini yazdır
  4. status değerini 200 olarak yeniden ata ve tekrar yazdır

Toplam dört satır çıktı.

Kendin dene

-- Kodu buraya yaz
-- printId(id: number | string): ()
-- local status: string | number = talimatlardaki tam metin
-- printId(42)'yi çağır, printId(talimatlardaki tam metin),
-- status'u yazdır, 200'e yeniden ata, tekrar 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

Kendi başına pratik yap: Online Lua derleyicisi