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 type yeterli olmaz. Bir user id "user123" veya 42 olarak gelebilir. Yalın Lua'da sadece en iyisini umut ederdiniz; Luau ise size union types sunar — dikey çizgi | işareti "veya" olarak okunur:

local userId: number | string

userId = "user123"  -- ✓ bir string'e izin verilir
userId = 42          -- ✓ bir number'a izin verilir
userId = true        -- ✗ tip hatası: boolean birleşimde yok

Bu variable, union içindeki her iki members değerinden birini tutabilir — ve sadece bunları. any ile arasındaki en önemli fark budur: bir union, size ihtiyacınız olan esnekliği sağlarken neye izin verildiği konusunda strict kalmaya devam eder.

Unions, birden fazla girdi biçimini kabul eden function parameter yapıları 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

Zaten string? türünü biliyorsunuz — bu sizin ilk union yapınızdı! Bu sadece string | nil için bir kısayoldur. Bir sonraki derste, elinizde bir union değeri olduğunda onunla güvenli bir şekilde nasıl çalışacağınızı öğreneceksiniz.

challenge icon

Görev

Kolay

id: number | string alan ve bunu yazdıran, açık dönüş türü () olan printId adında bir fonksiyon oluşturun.

string | number türünde, "<code>active" olarak başlatılmış status adında bir değişken tanımlayın.

Ardından, sırasıyla:

  1. printId(42) fonksiyonunu çağırın
  2. printId("<code>user123") fonksiyonunu çağırın
  3. status değişkenini yazdırın
  4. status değişkenine yeniden 200 değerini atayın ve tekrar yazdırın

Toplamda dört satır çıktı olmalıdır.

Kendin dene

-- Buraya kod yazın
-- 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