Daha önce if
ifadesini, ardından da döngüleri gördünüz. Ama Swift switch/case
olarak anılan başka bir akış kontrol tipine daha sahiptir. Bunu en kolay şekliyle if
ifadesinin gelişmiş bir formu olarak düşünün, çünkü birçok eşleşmeye sahip olabilirsiniz ve Swift doğru olanını çalıştıracak.
switch/case
ifadesinin en temel formuyla, Swift'e hangi değişkeni kontrol etmek istediğinizi söyler, ardından bu değişken için olası durumları belirtirsiniz. Swift değişkeninize uyan ilk durumu bulur ve kod bloğunu çalıştırır. Bu blok bittiğinde Swift, switch/case
bloğundan çıkar.
İşte size basit bir örnek:
let liveAlbums = 2
switch liveAlbums {
case 0:
print("You're just starting out")
case 1:
print("You just released iTunes Live From SoHo")
case 2:
print("You just released Speak Now World Tour")
default:
print("Have you done something new?")
}
Bunu if
ve else if
bloklarını kullanarak da pekala yazabilirdik, ama bu yöntem daha açık; önemli olan da bu.
switch/case
kullanımının bir avantajı da, Swift yazdığınız durumların ayrıntılı olmasını sağlamasıdır. Bununla, kontrol etmediğiniz bir değere sahip değişkeninizin olma ihtimali varsa, Xcode uygulamanızı derlemeyi reddedecektir.
Etkili bir şekilde açık uçlu değişkenlerin olduğu durumlarda, tıpkı bizim liveAlbums
tamsayısındaki gibi, bu olası değerleri yakalayacak default
durum içermesine ihtiyacınız var. Evet, verinizin sadece belirli bir aralığa düştüğünü "bilseniz" bile, Swift tamamen emin olmak ister.
Swift, değişkenlere karşı eşleme yapabilmek için durum ifadelerinize bazı değerlendirmeler yapmaya başvurabilir. Örneğin, olası değerlerin aralığını kontrol etmek isterseniz, aşağıdaki şekilde kapalı aralık operatörünü kullanabilirsiniz:
let studioAlbums = 5
switch studioAlbums {
case 0...1:
print("You're just starting out")
case 2...3:
print("You're a rising star")
case 4...5:
print("You're world famous!")
default:
print("Have you done something new?")
}
Swift'teki switch/case
blokları, bildiğiniz diğer dillerdeki gibi fos çıkmayacağını bilmelisiniz. Eğer case
bloklarınızda break
yazmaya alışkınsanız, Swift dilinde buna gerek olmadığını da bilmelisiniz.
Bunun yerine, bir durumun diğerine doğru akmasını sağlayan fallthrough
anahtar sözcüğünü kullanın; etkili bir şekilde tam zıttıdır bu. Tabi bunun ne anlama geldiği hakkında herhangi bir fikriniz yoksa, bu daha iyi: Buna takılmayın!
SPONSORED Join a FREE crash course for mid/senior iOS devs who want to achieve an expert level of technical and practical skills – it’s the fast track to being a complete senior developer! Hurry up because it'll be available only until October 1st.
Sponsor Hacking with Swift and reach the world's largest Swift community!
Link copied to your pasteboard.