Swift Academy · Oppitunti

Tehokas switch pattern matching -vertailulla

Kirjoittakaa ilmaisuvoimaisia switch-rakenteita: vertailkaa assosioituja arvoja, alueita ja tupleja sekä lisätkää where-lausekkeita. Pitäkää haarat kattavina ja luettavina.

Oppitunti 2/38 vaihetta

Tehokas switch pattern matching -vertailulla on ilmainen Swift Academy-oppitunti CoddyKitissä. Tämä on oppitunti 2/3. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu Swift Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Swift Academy-kurssilla on yhteensä 3 oppituntia.

Miksi hahmonsovitusta?

Swiftin switch sovittaa hahmoja: liitettyjä arvoja sisältäviä enumeraatioita, numeerisia alueita, monikoita ja where-ehtoja. Lisäksi sen on katettava kaikki tapaukset.

Liitetyt arvot

Sido liitetyt arvot käyttämällä let- tai var-määrettä suoraan case-hahmossa.

enum Network {
    case success(code: Int, body: String)
    case failure(message: String)
    case offline
}

let r1: Network = .success(code: 200, body: "OK")
switch r1 {
case .success(let code, let body):
    print("success", code, body)
case .failure(let msg):
    print("fail:", msg)
case .offline:
    print("offline")
}

Alueiden sovitus

Sovita numeerisia alueita, kuten 90...100 tai 80..<90. Käytä pilkkua , useiden hahmojen sovittamiseen samassa casessa.

let score = 73
switch score {
case 90...100:
    print("A")
case 80..<90:
    print("B")
case 60..<80:
    print("C")
case 0..<60:
    print("D")
default:
    print("invalid")
}

Monikot ja where

Sovita monikoita ja tarkenna ehtoa where-ehdolla, jotta geometriaa muistuttavat tarkistukset ovat helposti luettavia.

let point = (x: -2, y: 3)
switch point {
case (0, 0):
    print("origin")
case (let x, 0):
    print("x-axis at", x)
case (0, let y):
    print("y-axis at", y)
case (let x, let y) where x > 0 && y > 0:
    print("Q1:", x, y)
default:
    print("somewhere else")
}

Jokerimerkit ja osittainen yhteensopivuus

Käyttäkää _-merkkiä ohittaaksenne kenttiä tai sitokaa vain tarvitsemanne arvot. Pitäkää haarat pieninä ja selkeinä.

enum Event {
    case message(String, priority: Int)
    case ping
}
let e: Event = .message("update", priority: 1)

switch e {
case .message(let text, priority: _):
    print("msg:", text)           // ignore priority with _
case .ping:
    print("ping")
}

Vinkkejä

Vinkkejä:

  • Suosikaa ensin erityisiä tapauksia ja jättäkää default harvinaisia muita tapauksia varten.
  • Sitokaa arvot käyttämällä case let -rakennetta ja tarkentakaa ehtoa where-lauseella.
  • Suunnitelkaa enumit niin, että switch voi olla kattava ilman default-haaraa aina kun mahdollista.

Switchin teho

Pikatarkistus: Miksi Swiftin switch on ilmaisuvoimaisempi?

Kertaus

Kertaus: Käyttäkää switch-rakennetta kuvioiden täsmäyttämiseen: sitokaa enumien sisältämät arvot, kohdistakaa alueisiin, yhdistäkää monikot ja suodattakaa where-lauseella pysyen samalla kattavina.

Aloita maksutta

Opi Swift tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
122
Oppitunnit
409

Usein kysytyt kysymykset

Onko oppitunti ”Tehokas switch pattern matching -vertailulla” ilmainen?

Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa Swift Academy-oppimispolun 3 oppituntia, myös oppitunnin “Tehokas switch pattern matching -vertailulla”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Swift Academy-kurssilla on yhteensä 3 oppituntia.

Mitä opin oppitunnilla ”Tehokas switch pattern matching -vertailulla”?

Kirjoittakaa ilmaisuvoimaisia switch-rakenteita: vertailkaa assosioituja arvoja, alueita ja tupleja sekä lisätkää where-lausekkeita. Pitäkää haarat kattavina ja luettavina. Harjoittelet Swift Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Swift Academy-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Swift Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 2/3.

Kuinka kauan ”Tehokas switch pattern matching -vertailulla”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä Swift Academy-oppitunnilla?

Kyllä. Jokainen Swift Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. Enumeraatiot tehokäytössä
  2. Tehokas switch pattern matching -vertailulla
  3. Äärellisten tilojen mallintaminen
← Takaisin: Swift Academy