Junior
Swift dilinde opsiyoneller nasıl işlenir?
sobes.tech yapay zeka
AI'dan gelen yanıt
-
Zorunlu Açma:
// Değeri kesin olarak içerdiğinden emin olduğunuzda ! kullanılır. let optionalValue: String? = "merhaba" let unwrappedValue = optionalValue! // Tehlikeli, değer nil ise çökme olabilir -
İsteğe Bağlı Bağlama (if let, guard let):
// if let - optional nil değilse kod bloğunu çalıştırır. if let value = optionalValue { print(value) } // guard let - optional nil ise fonksiyon veya bloktan erken çıkmak için kullanılır. func processValue(_ value: String?) { guard let unwrappedValue = value else { print("Değer nil") return } print(unwrappedValue) } -
Opsiyonel Zincirleme:
// Güvenli bir şekilde metodları, özellikleri veya alt dizinleri çağırmaya olanak tanır. struct Company { var address: Address? } struct Address { var street: String? } let company: Company? = Company(address: Address(street: "Main Street")) let street = company?.address?.street // Sonuç opsiyonel String? -
Nil Birleştirme Operatörü (??):
// Opsiyonel nil ise varsayılan değer sağlar. let name: String? = nil let displayName = name ?? "Anonim" // name nil ise, displayName "Anonim" olur -
İmplicitly Unwrapped Optionals:
// ! ile tespit edilir. Derleyici açıkça açma gerektirmez, ancak nil ise çökme olabilir. let implicitlyUnwrappedString: String! = "bu bir string" print(implicitlyUnwrappedString.count) // ! gerekmeden üyelere erişim -
if case letile desen eşleştirmesi kullanımı:// Enum'ları ve ilişkili değerleri, opsiyonalleri de içerecek şekilde kontrol etmek için daha gelişmiş bir yöntem. enum Result { case success(String) case failure } let result: Result? = .success("İşlem tamamlandı") if case let .success(message)? = result { print("Başarılı mesaj: \(message)") }