NEW: Join my free 100 Days of SwiftUI challenge today! >>

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!

LEARN SWIFTUI FOR FREE I have a massive, free SwiftUI video collection on YouTube teaching you how to build complete apps with SwiftUI – check it out!

MASTER SWIFT NOW
Buy Testing Swift Buy Practical iOS 12 Buy Pro Swift Buy Swift Design Patterns Buy Swift Coding Challenges Buy Server-Side Swift (Vapor Edition) Buy Server-Side Swift (Kitura Edition) Buy Hacking with macOS Buy Advanced iOS Volume One Buy Advanced iOS Volume Two Buy Hacking with watchOS Buy Hacking with tvOS Buy Hacking with Swift 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!