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 değildir. Bir kullanıcı id'si "user123" veya 42 olarak gelebilir. Düz Lua'da sadece en iyisini umardınız; Luau size union types sağlar — pipe | karakteri "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

variable, union'ın her iki üyesini de tutabilir — ve yalnızca bunları. any türünden temel farkı budur: bir union, ihtiyacınız olan esnekliği sağlarken neye izin verildiği konusunda katı kalır.

Unions, birden fazla girdi biçimini kabul eden function parameter'ları için özellikle yararlıdır:

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

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

Zaten string? ifadesini biliyorsunuz — bu sizin ilk union yapınızdı! Bu basitçe string | nil için bir kısayoldur. Sonraki derste, elinizde bir tane olduğunda bir union değeri ile 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.

"active" olarak başlatılan, string | number türünde bir status değişkeni tanımlayın.

Ardından, sırasıyla:

  1. printId(42) fonksiyonunu çağırın
  2. printId("user123") fonksiyonunu çağırın
  3. status değişkenini yazdırın
  4. status değişkenini 200 olarak yeniden 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 = "active"
-- printId(42), printId("user123") çağır,
-- 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