Päättely sulkeumissa
Ymmärrä parametrien ja paluuarvojen päättely sulkeumissa.
Päättely sulkeumissa on ilmainen Swift Academy-oppitunti CoddyKitissä. Tämä on oppitunti 4/4. 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ä 4 oppituntia.
Closuret päättelevät tyypit
Monissa asiayhteyksissä closure voi päätellä sekä parametriensa että palautusarvonsa tyypit käyttötapansa perusteella.
let numbers = [1, 2, 3, 4]
let doubled = numbers.map { $0 * 2 }
print(doubled)Parametrin päätelty tyyppi
Kun välitätte closuren map-metodille, alkion tyyppi kertoo Swiftille, mikä $0 on, joten parametrin tyyppiä ei tarvitse ilmoittaa.
let names = ["ada", "bob"]
let upper = names.map { $0.uppercased() }
print(upper)Päätelty palautustyyppi
Cl osuren runko määrittää sen palautustyypin. Bool-arvon palauttaminen tekee closuresta predikaatin.
let nums = [1, 2, 3, 4, 5]
let evens = nums.filter { $0 % 2 == 0 }
print(evens)Lyhennetyt argumenttinimet
$0, $1 ja niin edelleen viittaavat closure-argumentteihin niiden sijainnin perusteella, kun niiden tyypit päätellään.
let sums = zip([1, 2, 3], [10, 20, 30]).map { $0 + $1 }
print(Array(sums))Eksplisiittiset parametrit tarvittaessa
Voitte silti nimetä parametrit ja määrittää niiden tyypit, jos se parantaa selkeyttä.
let nums = [3, 1, 2]
let sorted = nums.sorted { (a: Int, b: Int) -> Bool in
return a < b
}
print(sorted)Päättely asiayhteydestä
Jos sijoitatte closuren tyypitettyyn muuttujaan, muuttujan tyyppi kertoo closurelle sen signaturen.
let add: (Int, Int) -> Int = { a, b in a + b }
print(add(2, 3))Trailing closure
Trailing closure -syntaksi säilyttää tyyppipäättelyn ja tekee kutsukohdista samalla luettavampia.
let result = [5, 3, 8, 1].sorted { $0 > $1 }
print(result)Päättely reducella
reduce-kutsussa kertymän ja alkion tyypit päätellään alkuarvosta ja sekvenssistä.
let total = [1, 2, 3, 4].reduce(0) { acc, x in acc + x }
print(total)Palauttaminen closuresta
Yhden lausekkeen closuresta voi jättää return-avainsanan pois; lausekkeen arvo palautetaan ja sen tyyppi päätellään.
let lengths = ["hi", "hello", "hey"].map { $0.count }
print(lengths)Tyyppimäärityksellä varustettu closure-muuttuja
Kun closure tallennetaan ilman välitöntä kutsua, määrittäkää closuren tyyppi, jotta Swift voi päätellä rungon tyypin.
let transform: (String) -> Int = { $0.count }
print(transform("swift"))Milloin tyyppi on määritettävä
Jos ympäröivä asiayhteys ei anna tietoa tyypistä, Swift ei voi päätellä closuren parametreja, joten teidän on määritettävä ne.
let isPositive: (Int) -> Bool = { n in n > 0 }
print(isPositive(5), isPositive(-3))Pikatarkistus
Testatkaa closurejen tyyppipäättelyä.
Kertaus
Closurejen parametri- ja palautustyypit päätellään asiayhteydestä, kuten map- ja filter-kutsuista tai tyypitetystä muuttujasta. Käyttäkää lyhenteitä $0 ja $1, kun tyypit voidaan päätellä, ja lisätkää tyyppimääritykset eksplisiittisesti, kun asiayhteys puuttuu.
let f: (Int) -> Int = { $0 + 1 }
let xs = [1, 2, 3].map { $0 * 10 }
print(f(9), xs)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 ”Päättely sulkeumissa” ilmainen?
Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa Swift Academy-oppimispolun 3 oppituntia, myös oppitunnin “Päättely sulkeumissa”. 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ä 4 oppituntia.
Mitä opin oppitunnilla ”Päättely sulkeumissa”?
Ymmärrä parametrien ja paluuarvojen päättely sulkeumissa. 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 4/4.
Kuinka kauan ”Päättely sulkeumissa”-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
- Tyypin päättelyn toiminta
- Milloin eksplisiittisiä annotaatioita tarvitaan
- Päättely literaaleista
- Päättely sulkeumissa