Menu
Coddy logo textTech

Nil Coalescing Operatörü

Coddy'nin Swift Journey'sinin Temeller bölümünün bir parçası — ders 14 / 86.

Bazen bir optional nil olduğunda, birden fazla satır kod yazmadan sadece varsayılan bir değer sağlamak istersiniz. Swift'in nil birleştirme operatörü (??) tam olarak bunu yapar — eğer bir değeri varsa bir optional'ı açar (unwrap) veya nil ise varsayılan bir değer döndürür.

let nickname: String? = nil
let displayName = nickname ?? "Guest"
print(displayName) // Guest

nickname değeri nil olduğu için, operatör bunun yerine "Guest" döndürür. Eğer nickname bir değere sahip olsaydı, o değer kullanılırdı.

let username: String? = "SwiftCoder"
let greeting = username ?? "Anonymous"
print(greeting) // SwiftCoder

Nil birleştirme operatörü (nil coalescing operator), yedek bir değere ihtiyaç duyduğunuz tek satırlık işlemler için mükemmeldir. Sadece nil değerini bir varsayılanla değiştirmek istediğinizde, bir if let ifadesi yazmaktan daha temizdir. Sonuç her zaman optional olmayan bir değerdir, bu nedenle daha fazla unwrapping işlemi yapmadan doğrudan kullanabilirsiniz.

challenge icon

Görev

Kolay

Bir opsiyonel username ve bir defaultName alan, ardından nil birleştirme (nil coalescing) operatörünü kullanarak uygun görünen adı döndüren bir getDisplayName fonksiyonu yazın.

Eğer kullanıcı adı boşsa (boş bir dize "" ile temsil edilir), bunu nil olarak kabul edin ve varsayılan adı döndürün. Aksi takdirde, kullanıcı adını döndürün.

Parametreler:

  • username (String): Kullanıcının adı (boş dize nil'i temsil eder)
  • defaultName (String): Kullanılacak yedek ad

Döndürdüğü Değer: Boş değilse kullanıcı adı, aksi takdirde defaultName.

İpucu: Fonksiyonunuzun içinde kullanıcı adını bir opsiyonel değere dönüştürün — eğer boşsa, onu nil yapın. Ardından yedek değeri sağlamak için ?? kullanın.

Kopya kağıdı

Nil birleştirme operatörü (??), bir opsiyonel (optional) değer içeriyorsa onu açar veya nil ise varsayılan bir değer döndürür:

let nickname: String? = nil
let displayName = nickname ?? "Guest"
print(displayName) // Guest

Eğer opsiyonel bir değere sahipse, bunun yerine o değer kullanılır:

let username: String? = "SwiftCoder"
let greeting = username ?? "Anonymous"
print(greeting) // SwiftCoder

Sonuç her zaman opsiyonel olmayan bir değerdir; bu da onu basit yedekleme senaryoları için if let yapısından daha temiz hale getirir.

Kendin dene

func getDisplayName(username: String, defaultName: String) -> String {
    // Kodunuzu buraya yazın
}
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Temeller bölümündeki tüm dersler