Junior
Swift dilində opsionaların işlənməsi üçün hansı üsullar mövcuddur?
sobes.tech Süni İntellekt
AI-dan cavab
-
Məcburi açma:
// Əgər optional dəyərin məzmununda əmin olsanız, ! istifadə olunur. let optionalValue: String? = "salam" let unwrappedValue = optionalValue! // Təhlükəli, əgər dəyər nil olarsa, crash baş verə bilər -
Optional Bağlama (if let, guard let):
// if let - optional nil olmadıqda blok icra edir. if let value = optionalValue { print(value) } // guard let - funksiyadan və ya blokdan erkən çıxmaq üçün istifadə olunur, əgər optional nil olarsa. func processValue(_ value: String?) { guard let unwrappedValue = value else { print("Dəyər nil") return } print(unwrappedValue) } -
Optional Zəncirləmə:
// Optional dəyərlərdə təhlükəsiz şəkildə metodlar, xüsusiyyətlər və ya subscriptlər çağırmağa imkan verir. struct Company { var address: Address? } struct Address { var street: String? } let company: Company? = Company(address: Address(street: "Main Street")) let street = company?.address?.street // Nəticə optional String? -
Nil-Coalescing Operator (??):
// Əgər optional nil olarsa, default dəyər verir. let name: String? = nil let displayName = name ?? "Naməlum" // Əgər name nil olarsa, displayName "Naməlum" olacaq -
İmplicitly Unwrapped Optionals:
// ! ilə aşkarlanır. Kompilyator açıq açma tələb etmir, amma nil olarsa crash edə bilər. let implicitlyUnwrappedString: String! = "bu bir string" print(implicitlyUnwrappedString.count) // ! tələb edilmir, üzvlərə giriş üçün -
if case letilə pattern uyğunluğu istifadə:// Enum-ları və əlaqəli dəyərləri, o cümlədən optional-ları yoxlamaq üçün daha inkişaf etmiş üsul. enum Result { case success(String) case failure } let result: Result? = .success("Əməliyyat tamamlandı") if case let .success(message)? = result { print("Uğur ilə mesaj: \(message)") }