Guard Let
Coddy'nin Swift Journey'sinin Temeller bölümünün bir parçası — ders 13 / 86.
if let bir opsiyoneli açarken ve bir değer mevcut olduğunda kodu çalıştırırken, guard let tam tersi bir yaklaşım benimser — bir değer eksik olduğunda erkenden çıkar. Bu, özellikle "kötü" durumu önce ele almak ve ana mantığı temiz tutmak istediğiniz fonksiyonların içinde kullanışlıdır.
func greet(name: String?) {
guard let unwrappedName = name else {
print("No name provided")
return
}
print("Hello, \(unwrappedName)!")
}
greet(name: "Taylor") // Merhaba, Taylor!
greet(name: nil) // İsim belirtilmediguard let ifadesi, name değişkeninin bir değere sahip olup olmadığını kontrol eder. Eğer sahip değilse, else bloğu çalışır ve fonksiyon return ile sonlanır. Eğer optional bir değer içeriyorsa, bu değer unwrappedName içine açılır — ve işte if let ifadesinden temel farkı şudur: açılan değişken sadece bir blok içinde değil, fonksiyonun geri kalanı boyunca kullanılabilir durumda kalır.
Bu "erken çıkış" deseni, hata durumlarını en başta ele alarak kodunuzun okunabilir kalmasını sağlar, böylece ana mantık birden fazla if ifadesi içine yuvalanmaz.
Görev
Kolayİsteğe bağlı bir age parametresi alan ve bunu güvenli bir şekilde açmak (unwrap) için guard let kullanan bir validateAge fonksiyonu yazın.
Eğer yaş nil ise, "Invalid age" döndürün. Aksi takdirde, [value] açılmış yaş değeri olmak üzere "Age: [value]" döndürün.
Parametreler:
age(Int?): Bir kişinin yaşını temsil eden isteğe bağlı bir tam sayı
Dönüş Değeri: Bir dize — girdi nil ise "Invalid age" veya açılmış değerle birlikte "Age: [value]".
Örnek: Eğer age değeri 25 ise, "Age: 25" döndürün. Eğer age değeri nil ise, "Invalid age" döndürün.
Kopya kağıdı
Bir opsiyoneli (optional) açmak ve bir değer eksik olduğunda erkenden çıkış yapmak için guard let kullanın:
func greet(name: String?) {
guard let unwrappedName = name else {
print("No name provided")
return
}
print("Hello, \(unwrappedName)!")
}guard let ifadesi, opsiyonelin bir değere sahip olup olmadığını kontrol eder. Eğer yoksa, else bloğu çalışır ve return ile fonksiyondan çıkar. Eğer opsiyonel bir değer içeriyorsa, bu değer açılır (unwrapped) ve fonksiyon kapsamının geri kalanı için kullanılabilir durumda kalır.
Bu "erken çıkış" (early exit) deseni, hata durumlarını en başta ele alarak ana mantığın temiz ve girintisiz kalmasını sağlar.
Kendin dene
func validateAge(age: Int) -> 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