Swift Academy · Oppitunti

Korkeamman kertaluvun funktiot: map, flatMap, compactMap

Sekvenssien muuntaminen ilman muuttamista Swiftin kokoelmafunktioilla.

Oppitunti 2/412 vaihetta

Korkeamman kertaluvun funktiot: map, flatMap, compactMap on ilmainen Swift Academy-oppitunti CoddyKitissä. Tämä on oppitunti 2/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.

Tervetuloa

Korkeamman asteen funktiot ottavat vastaan muita funktioita tai palauttavat niitä. Swiftin kokoelmakirjasto perustuu niihin: `map`, `flatMap`, `compactMap`, `filter`, `reduce`.

map — jokaisen alkion muuntaminen

```swift let nums = [1,2,3,4] let squared = nums.map { $0 * $0 } // [1,4,9,16] let strs = nums.map(String.init) // ["1","2","3","4"] ```

flatMap — muuntaminen ja litistäminen

```swift let words = ["hello world","foo bar"] let all = words.flatMap { $0.split(separator:" ").map(String.init) } // ["hello","world","foo","bar"] ```

compactMap — muuntaminen ja nil-arvojen poistaminen

```swift let mixed = ["1","two","3"] let nums = mixed.compactMap { Int($0) } // [1,3] ```

Funktioviitteiden välittäminen

```swift func double(_ n: Int) -> Int { n * 2 } let result = [1,2,3].map(double) // [2,4,6] ``` Funktioviitteet voivat toimia sulkeumalitteraalien sijaan.

Korkeamman asteen funktioiden ketjuttaminen

```swift let total = (1...100) .filter { $0 % 2 == 0 } .map { $0 * $0 } .reduce(0, +) // sum of squares of even numbers 1-100 ```

flatMap valinnaisilla arvoilla

```swift let maybeStr: String? = "42" let maybeInt = maybeStr.flatMap { Int($0) } // Optional(42) let nil2: String? = nil let also = nil2.flatMap { Int($0) } // nil ```

Mukautettu korkeamman asteen funktio

```swift func applyTwice(_ f: (T) -> T, _ value: T) -> T { f(f(value)) } print(applyTwice({ $0 * 2 }, 3)) // 12 ```

sorted(by:) korkeamman asteen funktiona

```swift let words = ["banana","apple","cherry"] let sorted = words.sorted { $0.count < $1.count } // ["apple","banana","cherry"] ``` `sorted(by:)` vastaanottaa vertailufunktion.

Käytännössä: käyttäjätietojen käsittely

```swift struct User { var name: String; var score: Int } let users = [User(name:"A",score:80),User(name:"B",score:45),User(name:"C",score:92)] let topNames = users.filter { $0.score >= 80 }.map { $0.name }.sorted() // ["A","C"] ```

Pikatarkistus

Mitä `compactMap` tekee, mitä tavallinen `map` ei tee?

Kertaus

Keskeiset opit: • `map` — muuntaa jokaisen alkion • `flatMap` — muuntaa ja litistää sisäkkäiset tulokset • `compactMap` — muuntaa ja poistaa nil-arvot • Välittäkää funktioviitteet suoraan: `.map(String.init)` • Ketjuttakaa operaatiot selkeiksi tietoputkiksi Seuraavaksi: funktioiden koostaminen ja käsittelyputket.
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 ”Korkeamman kertaluvun funktiot: map, flatMap, compactMap” ilmainen?

Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa Swift Academy-oppimispolun 3 oppituntia, myös oppitunnin “Korkeamman kertaluvun funktiot: map, flatMap, compactMap”. 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 ”Korkeamman kertaluvun funktiot: map, flatMap, compactMap”?

Sekvenssien muuntaminen ilman muuttamista Swiftin kokoelmafunktioilla. 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/4.

Kuinka kauan ”Korkeamman kertaluvun funktiot: map, flatMap, compactMap”-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. Puhtaat funktiot ja sivuvaikutukseton suunnittelu
  2. Korkeamman kertaluvun funktiot: map, flatMap, compactMap
  3. Funktioiden yhdistäminen ja putket
  4. Laiskat sekvenssit tehokkuuden parantamiseen
← Takaisin: Swift Academy