Ana içeriğe geç
  1. 100 Günde SwiftUI Notları/

2.Gün - Swift ile Boolean ve String Interpolation

Bugünkü derste mantıksal durumların sonucunu saklayan veri tipi olan Boolean’ları ve String ifadelerde kullanabileceğimiz önemli bir özellik olan Interpolation’ı inceleyeceğiz.

Mantıksal Durum Nasıl Saklanır : Boolean #

Boolean türü oldukça basittir. Sadece doğru ve yanlışı saklayabilir.

Boolean veri aşağıdaki gibi oluşturulabilir. true ve false dışında başka alabileceği bir değer yoktur.

let goodDogs = true
let gameOver = false

Aslında 1.günde çalıştığımız konularda bu veri türünü gördük.

let filename = "paris.jpg"
print(filename.hasSuffix(".jpg"))
//ÇIKTI : true

let number = 120
print(number.isMultiple(of: 3))
//ÇIKTI : true

hasSuffix() filename değişkeninde bulunan “paris.jpg” stringinin sonunda “.jpg” ifadesinin olup olmadığını kontrol eder ve gerçekten var olduğu için geriye true değerini döndürür.

Aynı şekilde isMultiple(of:) , number değişkeninde bulunan 120 değerinin 3’ün katı olup olmadığını kontrol eder ve geriye true değerini döner.

Boolean ifadeler aritmetik operasyonalara sokulamaz, bu sebeple aritmetik operatörler kullanılamaz. Fakat Boolean ifadeler ile “DEĞİL” anlamına gelen ! operatörü kullanılmaktadır. Bu operatör değeri tam tersine çevirir.

var isAuthenticated = false
isAuthenticated = !isAuthenticated
print(isAuthenticated)
//ÇIKTI : true
isAuthenticated = !isAuthenticated
print(isAuthenticated)
//ÇIKTI : false

Bool ifadeler için kullanılabilen toggle() fonksiyonu bulunmaktadır. Bu fonksiyon sayesinde bool ifadenin değeri tam tersine çevrilir. toggle() metodu ! operatörü ile aynı işlemi yapar, uzun ver karmaşık kodlarda okuma kolaylığı sağlar yalnızca.

var gameOver = false
print(gameOver)
//ÇIKTI : false
gameOver.toggle()
print(gameOver)
//ÇIKTI : true

String Interpolation #

String ifadelerin birleştirilebilmesi için 2 yöntem bulunmaktadır;

  • + operatörünün kullanımı
  • String Interpolation

+ Operatörünün Kullanımı #

+ operatörünün String ile kullanımı oldukça basittir. İki (veya daha fazla) string ifadeyi birleştirebilirsiniz.

let firstPart = "Hello, "
let secondPart = "world!"
let greeting = firstPart + secondPart
print(greeting)
//ÇIKTI : Hello, world!

Bu birleştirme işlemini ardı ardına yapmaya devam edebiliriz.

let people = "Haters"
let action = "hate"
let lyric = people + " gonna " + action
print(lyric)
//ÇIKTI : Haters gonna hate

Hatta olayları biraz daha abartıp şu şekilde de bir şey yapabiliriz.

let luggageCode = "1" + "2" + "3" + "4" + "5"

Yukarıdaki örneği incelediğinizde elimizde son kalacak string ifade 12345 olacak. Fakat burada karşımıza bir sorun çıkıyor. Swift bu birleştirme işlemini birden yapmayacak. İzleyeceği yol şu şekilde olacak:

  • “12”+”3”+”4”+”5”
  • “123”+”4”+”5”
  • “1234”+”5”
  • “12345”

Yani birleştirme işlemi adım adım yapılacak. + operatörü ile String birleştirme işlemi yalnızca az adımlı birleştirme işlemleri için uygundur. Peki ya daha fazlasına ihtiyacımız varsa? O durumda imdadımıza String Interpolation yetişecek.

String Interpolation #

Interpolation işleminin yapımı oldukça basittir. Ters eğik çizgi ve 2 adet parantez ile bu işi çözebiliriz. Ayrıca Interpolation sadece String değil, Int,Double,Bool ve daha bir çok şeyi String ile birleştirebilir.

let name = "Taylor"
let age = 26
let message = "Hello, my name is \(name) and I'm \(age) years old."
print(message)
//ÇIKTI : Hello, my name is Taylor and I'm 26 years old.

Yukarıdaki kodda görüldüğü gibi Int bir değeri (age), doğrudan String bir ifadenin içine ekleyebildik.

+ operatöründen fark işte bu noktada orataya çıkıyor. Örneğin aşağıdaki gibi bir kod yazsaydık bu kod çalışmayacaktı. Çünkü + operatörü ile yalnızca String ifadeler birleştirilebilir.

// DİKKAT BU KOD HATALIDIR. XCODE HATA VERİR.
let number = 11
let missionMessage = "Apollo " + number + " landed on the moon."

Ama yukarıdaki örneği illa ki + operatörü ile birleştirmek istiyorsak aşağıdaki gibi bir yol izleyebiliriz.

let missionMessage = "Apollo " + String(number) + " landed on the moon."

Fakat bunun daha hızlı bir yolu var :

let missionMessage = "Apollo \(number) landed on the moon."

Bu yazıyı İngilizce olarak da okuyabilirsiniz.
You can also read this article in English.

Bu yazı, SwiftUI Day 2 adresinde bulunan yazılardan kendim için aldığım notları içermektedir. Orjinal dersi takip etmek için lütfen bağlantıya tıklayın.