TEAM LICENSES: Save money and learn new skills through a Hacking with Swift+ team license >>

Switch case

Widziałeś już instrukcje if a także pętlę warunkowe, lecz Swift posiada takżę inny rodzaj instrukcji kontrolującej przebieg programu nazywaną switch/case. Najprostszym sposobem zrozumienia tej instrukcji jest wyobrażenie sobie jej jako zaawansowanej instrukcji warunkowej if, gdzie możesz posiadać bardzo wiele możliwych dopasowań a Swift wykona jeden spełniający warunek.

W najprostszej formie instrukcji switch/case mówisz Swiftowi jaką zmienną chcesz sprawdzić, a następnie wprowadzasz listę możliwych przypadków dla tej zmiennej. Swift odnajdzie pierwszy pasujący do Twojej zmiennej przypadek i wykona instrukcję wewnątrz bloku warunkowego. Gdy kod w bloku zostanie wykonany Swift opuści instrukcję warunkową i jej cały blok wykonawczy.

Oto prosty przykład:

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?")
}

Równie dobrze możemy napisać podobne warunki wykorzystując do tego wiele instrukcji if oraz else if, lecz ten sposób jest znacznie 'czystszy' co dla nas istotne.

Jedną z zalet korzystania z instrukcji switch/case jest to, że Swift zapewni sprawdzenie wszystkich Twoich warunków. Oznacza to jedno, że kiedy nie napiszemy obsługi jakiegoś przypadku zdeklarowanego do sprawdzenia, Xcode nie zbuduje Twojej aplikacji.

W sytuacji gdy wartości pasujące do sprawdzanej zmiennej są nieskończone, jak nasza liveAlbums (liczba całkowita), będziesz musiał obsłużyć przypadek domyślny default, który wyłapie wszystkie potencjalne wartości. Tak, nawet jeśli wiesz w jakim zakresie będą występować Twoje dane, Swift chce mieć całkowitą pewność.

Swift może zastosować kwalifikację do instrukcji sprawdzania w celu dopasowania przypadków do pewnych zakresów. Na przykład, jeśli chcesz sprawdzić zakres możliwych wartości, powinieneś użyć zamkniętego operatora jak w przykładzie poniżej:

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?")
}

Jedno o czym należy pamiętać to, że bloki switch/case w Swifcie nie przeskakują do kolejnego wykonania case jak mogłeś zauważyć w innych językach programowania. Jeżeli przyzwyczaiłeś się do pisania instrukcji break w Twoim bloku case, powinieneś wiedzieć, że w Swifcie nie jest to konieczne.

Zamiast tego możesz użyć słowa kluczowego fallthrough do przejścia z jedno przypadku w drugi - odwrotność. Oczywiście jeżeli nie wiesz co to oznacza, tym bardziej: nie przejmuj się tym!

Hacking with Swift is sponsored by String Catalog.

SPONSORED Get accurate app localizations in minutes using AI. Choose your languages & receive translations for 40+ markets!

Localize My App

Sponsor Hacking with Swift and reach the world's largest Swift community!

BUY OUR BOOKS
Buy Pro Swift Buy Pro SwiftUI Buy Swift Design Patterns Buy Testing Swift Buy Hacking with iOS Buy Swift Coding Challenges Buy Swift on Sundays Volume One Buy Server-Side Swift Buy Advanced iOS Volume One Buy Advanced iOS Volume Two Buy Advanced iOS Volume Three Buy Hacking with watchOS Buy Hacking with tvOS Buy Hacking with macOS Buy Dive Into SpriteKit Buy Swift in Sixty Seconds Buy Objective-C for Swift Developers Buy Beyond Code

Was this page useful? Let us know!

 
Unknown user

You are not logged in

Log in or create account
 

Link copied to your pasteboard.