Optional
Optional, bir değişken tanımlarken değişkenin tipini örtülü olarak atamamızı sağlar.
Aşağıdaki kodda normal şartlarda değişkeni tanımlarken :Int şeklinde değişkenin tipini belirtmek zorunda değiliz. Fakat değişkene bir değer ataması yapmamız gerekiyor aksi taktirde uygulamamız bize hata verecektir.
var number: Int print(number)
Eğer değişkeni tanımlarken tip adının sonuna ? işaretini eklersek değişkenimiz artık opsiyonel olacaktır ve boş olması durumunda default olarak nil değerini döndürecektir.
var number: Int? print(number) //output nil
Ayrıca değişkenimizi optional olarak tanımlayıp bir değer ataması yaptığımızda aslında değişkenimizi bir kutu içerisine alıyormuşuz gibi düşünebiliriz. Değişkenimizi kullanabilmek için kutudan çıkarmamız gerek. Bunun için bir kaç yöntem bulunmaktadır.
var number: Int? = 5 print(number) //output Optional(5)
1- Değişkenimizi kullanacağımız yerde sonuna ! (ünlem işareti) ekleyebiliriz.
var number: Int? = 5 print(number!) //output 5
2- Bir önceki konumda bahsettiğim if let ve guard let yapıları ile değişkenimizi kutudan çıkartabiliriz.
let number : Int? = 5 if let newNumber = number { print(newNumber) } //output 5
let number : Int? = 5 guard let newNumber = number else { return } print(newNumber) //output 5
3- Bir diğer yöntem ise değişkenimizi kullanırken ?? operatörü ile varsayılan değer ataması yapabiliriz. Bu yapı değişkenimizin değerini değiştirmez. Fakat değişkenimizin nil gelmesi durumunda kullanılacak bir değer belirtebiliriz.
let number : Int? = 5 print(number ?? 0) //output 5
non-optional
non-optional değişkenler optional işaretini kullanmadan direkt tip belirttiğimiz veya tip belirtmeden direkt değer atamasını yaptığımız değişkenlerdir.
var number : Int = 5 //non-optional var name = "Bahri" //non-optional print(number, name)
non-optional olarak değişken tanımlarken başlangıç değerlerini vermek zorundayız.
İlk Yorumu Siz Yapın