Swift Opsiyoneller
- Swift’s her değişken Nil değeri alamaz. Bir değişkenin Nil değeri alabilmesi için OPSİYONEL OLARAK DEKLARE EDİLMİŞ OLMASI ZORUNLUDUR!
-> Opsiyonel değişken deklerasyonu ;
var surveyAnswer: String?
-> Görüldüğü gibi tipten sonra bir soru işareti konularak değişken opsiyonel yapılmıştır.
OPSİYONEL OLARAK TANIMLANMAMIŞ BİR DEĞİŞKENE NİL ATAMASI YAPILAMAZ
- Opsiyonel değişken kendisine bir atama yapıldıktan sonra “wrapped” haldedir. Kullanabilmek için “unwrap” eylemek gerekir.
Neden? Çünkü unwrap etmeden kullanıldığında aşağıdaki sıkıntı meydana gelmektedir ;
var author: String? = "Mustafa Hastürk"
print(author)
// "Optional("Mustafa Hastürk")\n"
2 çeşit unwrapping vardır ;
- Forced Unwrapping
- Optional Binding
Forced Unwrapping
If ile değişkenin boş olup olmadığı kontrol edilir ardından ! İşareti ile unwrap edilir. Bu forced unwrapping’tir.
if author != nil {
print("author değişkeni String türde değer içermektedir")
}
// "author değişkeni String türde değer içermektedir" yazacaktır.
print(author!)
// Ekrana "author" değerini basacaktır.
- Fakat bir şekilde author değişkeni Nil ise, bu durum programı crash eyler. Bu nedenle sona ünlem koymaklı unwrapping biraz tehlikelidir.
Optional Binding
- Bu yöntem ile optional değişken if kontrol durumu içerisinde başka bir let sabitine atanır. Eğer optional değişken nil değer içeriyorsa if koşulundan çıkılır, içermiyor ise optinal değişkenin değeri ile işlem yapılabilir.
var author: String? = "Mustafa Hastürk"
if let authorName = author {
print("Bu makale yazarı: \(authorName)")
}
else {
print("'author' değişkeni nil değer içermektedir")
}
Leave a comment