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) // Guestnickname 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) // SwiftCoderNil 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.
Görev
KolayBir 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) // GuestEğer opsiyonel bir değere sahipse, bunun yerine o değer kullanılır:
let username: String? = "SwiftCoder"
let greeting = username ?? "Anonymous"
print(greeting) // SwiftCoderSonuç 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
}
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
4Operatörler Bölüm 1
Aritmetik OperatörlerModül OperatörüBileşik AtamaÖzet - Basit MatematikKarşılaştırma Operatörleri7Temel Giriş/Çıkış
Print FonksiyonuString InterpolationReadLine GirişiTür DönüşümüÖzet - 120'ye KadarÖzet - Doğru veya Yanlış10Fonksiyonlar
Fonksiyon TanımlamaParametreler ve ArgümanlarDönüş DeğerleriArgüman EtiketleriÖzet - Sigma FonksiyonuÖzet - Doğrulama FonksiyonuVarsayılan Değerler13Diziler Üzerinde Yineleme
Elemanlar Üzerinde YinelemeEnumerate MetoduStringler Üzerinde Yineleme P1Stringler Üzerinde Yineleme P22Değişkenler
Let vs VarTip BelirteçleriSayılarStringBooleanİsimlendirme KurallarıÖzet - Değişkenleri Başlatma5Operatörler Bölüm 2
Mantıksal Operatörler Bölüm 1Mantıksal Operatörler Bölüm 2Özet - Basit MantıkMantıksal Operatörler Bölüm 3Ternary Operatör8Hesap Paylaşım Hesaplayıcısı
Hoş Geldiniz MesajıGirdi Alma14İleri Seviye Diziler
Dizi Dilimleme Bölüm 1Dizi Dilimleme Bölüm 2Sıralı Yapı OperatörleriContains Metodu3Opsiyoneller
Opsiyoneller NedirIf Let ile UnwrappingGuard LetNil Coalescing OperatörüÖzet - Güvenli Unwrapping6Karar Yapıları
If İfadesiIf - ElseÖzet - Basit Hesap MakinesiSwitch İfadesiAralıklı Switch Kullanımı9Döngüler
For-In DöngüsüWhile DöngüsüRepeat-While DöngüsüBreakContinueÖzet - FaktöriyelDöngülerde Aralıklarİç İçe DöngülerÖzet - Dinamik Girdi