Map/Filter/Reduce ja laiskat sekvenssit
Käyttäkää map -, filter - ja reduce -operaatioita muuntamiseen, valitsemiseen ja yhdistämiseen. Lisätkää sitten .lazy -määrite työn lykkäämiseksi ja väliaikaisten taulukoiden välttämiseksi.
Map/Filter/Reduce ja laiskat sekvenssit 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.
Perusajatus
Keskeiset algoritmit:
- map: muuntaa jokaisen alkion
- filter: säilyttää predikaattia vastaavat alkiot
- reduce: yhdistää alkiot yhdeksi arvoksi
- .lazy: siirtää työn myöhemmäksi väliaikaisten taulukoiden välttämiseksi
map
map muuntaa jokaisen alkion ja palauttaa uuden taulukon.
let nums = [1, 2, 3]
let doubled = nums.map { $0 * 2 } // [2, 4, 6]
print(doubled)
let words = ["swift", "kit"]
let upper = words.map { $0.uppercased() } // ["SWIFT","KIT"]
print(upper)filter
filter säilyttää alkiot, joille predikaatti palauttaa arvon true.
let scores = [45, 72, 88, 53]
let passing = scores.filter { $0 >= 60 } // [72, 88]
print(passing)
let names = ["Ana","Li","Max"]
let short = names.filter { $0.count <= 2 } // ["Li"]
print(short)reduce
reduce kokoaa sekvenssin yhdeksi tulokseksi aloitusarvon ja yhdistävän closuren avulla.
let total = [1,2,3,4].reduce(0) { acc, x in acc + x } // 10
print(total)
let joined = ["a","b","c"].reduce("") { $0 + $1 } // "abc"
print(joined)Lazy-laskenta tarpeen mukaan
.lazy rakentaa viivästetyn putken: operaatiot suoritetaan vasta, kun käsittelette alkioita (esimerkiksi prefix- tai first-kutsun kautta tai iteroimalla).
let range = 1...10
let lazyPipeline = range.lazy
.map { x in print("map", x); return x * x }
.filter { x in print("filter", x); return x % 2 == 0 }
// Only the first 3 results are needed:
let firstThree = Array(lazyPipeline.prefix(3))
print("result:", firstThree)
// Notice how only the work needed for 3 elements ran.Vinkit
Vinkit:
- Ketjuttakaa map → filter → reduce selkeiksi tietovirroiksi.
- Lisätkää .lazy, kun käsittelette vain osan putkesta tai haluatte välttää väliaikaiset taulukot.
- Muodostakaa konkreettinen taulukko
Array(...)-kutsulla vain, kun tarvitsette sellaisen.
lazy-käyttäytyminen
Pikatarkistus: Mikä vaikutus .lazy-määreellä on map/filter-ketjuun?
Kertaus
Kertaus: Käyttäkää map-operaatiota muuntamiseen, filter-operaatiota valitsemiseen ja reduce-operaatiota yhdistämiseen. Lisätkää .lazy tarpeen mukaan tapahtuvaa arviointia ja vähäisempiä allokaatioita varten.
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 ”Map/Filter/Reduce ja laiskat sekvenssit” ilmainen?
Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa Swift Academy-oppimispolun 3 oppituntia, myös oppitunnin “Map/Filter/Reduce ja laiskat sekvenssit”. 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 ”Map/Filter/Reduce ja laiskat sekvenssit”?
Käyttäkää map -, filter - ja reduce -operaatioita muuntamiseen, valitsemiseen ja yhdistämiseen. Lisätkää sitten .lazy -määrite työn lykkäämiseksi ja väliaikaisten taulukoiden välttämiseksi. 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 ”Map/Filter/Reduce ja laiskat sekvenssit”-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
- Sequence/Collection-hierarkiat
- Map/Filter/Reduce ja laiskat sekvenssit
- Mukautetut iteraattorit ja suorituskykyvinkit