Ana sayfa Genel Swift 4 Optional’lar

Swift 4 Optional’lar

3122
257
PAYLAŞ

Merhabalar,

Bu dersimizde Swift dilinde oldukça önemli bir yere sahip olan Optional’lar dan bahsedeceğiz.

Bir class veya struct tanımlarken, tanımladığımız veri tipinin sonuna “?” koyduğumuzda bu değişkenin veya sabiti optional olarak tanımlamış oluruz.

Yukarıdaki kod bloğunda da görülebileceği gibi, isim sabitimiz normal bir şekilde tanımlanırken, soyisim sabitimiz sonunda “?” ile optional olarak tanımlanmıştır.

Bir değişkenin optional olarak tanımlanması, o değişkenin bir değerinin olmadığı durumlarında mevcut olabilmesini sağlar.

Bir örnek vererek daha iyi açıklamaya çalışalım:

İlk olarak Insan adında bir struct oluşturuyoruz, bu struct’ımızın isim, ikinciIsim, ve soyIsim gibi sabitlerini tanımladık. Dikkat ederseniz “ikinciIsim” adlı sabitimizin veri tipi olan Stringin sonuna “?” koyduk. Gerçek hayatta tanıdığımız insanlara baktığımızda herkesin bir isim ve soyismi bulunurken, ikinci isim bazı insanlarda bulunmamaktadır, yani ikinci isim oladabilir, olmayadabilir. Bu yüzden optional olarak tanımlamamız çok daha mantıklı.

Ardından Insan struct’ına özgü “tamIsim” adlı String dönen bir method tanımladık. Bu methodumuz oluşturulan insan objesinin, if – else bloğunda ikinci ismi olup olmadığına bakarak, tam ismi döndürüyor.

Fark ettiğiniz gibi, else bloğunda “ikinciIsim” sabitinin sonunda bir “!” işareti var. Burada biz daha önceden ikinciIsim’in değerinin olup olmadığını kontrol ettiğimiz için, ! işareti koyarak (force unwrapping) tam ismimizi yazdırıyoruz.

Normalde mümkün olduğunca ! işareti koymaktan kaçınmalıyız, çünkü ! işareti koyduğumuz biryerde eğer o sabit veya değişkenin değeri nil ise, uygulamamız crash olacaktır. ! işareti ve güvenli şekilde optionallar ile çalışmayı “Optional Binding” dersinde daha detaylı göreceğiz.

Şimdi geri dönecek olursak, tanımladığımız insan structıyla objeler oluşturup nasıl çalıştığına bakalım.

Lütfen öncelikle yazılan kodları playground’da yazıp gelen output’u inceleyin.

Birinci, emre isimli objede, ikinciIsim nil olarak belirlendiği için, daha sonra tamIsim() adlı methodumuz kullanıldığında, if ikinciIsim == nil, koşulu true olduğundan ismimiz direk “Emre Havan” olarak yazdırılmaktadır. İkinci, mustafa isimli objemizde ise, ikinciIsim değişkeninin bir değeri olduğundan, else koşuluna göre fonksiyonumuz bize dönüş yapmıştır.

Optionallar ilk olarak biraz kafa karıştırıcı gelebilir, ama bunlar zamanla daha iyi oturacaktır, özellikle Optional Binding dersimizde nasıl daha güvenli bir şekilde optionallar ile çalışabileceğimizi detaylı inceleyeceğiz.

PAYLAŞ
Önceki makaleSwift 4 ile Inheritance
Sonraki makalePythonda Veri Tipi Dönüşümleri
Kadir Has Universitesi Elektrik&Elektronik Bölümünden 2016 yılında mezun oldum, mezuniyet sonrası alan değiştirerek bilgisayar bilimi ve programlama üzerine çalışmalarıma başladım. Amacım kendimi geliştirirken bir yandanda, programlama alanındaki türkçe kaynak azlığını giderebilmek için bloglar yazmak.

BİR CEVAP BIRAK

Please enter your comment!
Please enter your name here