0Pricing
Swift Academy · Lezione

Map, filter e reduce sugli array

Trasformi gli array con funzioni di ordine superiore in stile funzionale.

Map, filter e reduce sugli array è una lezione Swift Academy gratuita su CoddyKit. Questa è la lezione 3 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Swift Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Swift Academy include 4 lezioni in totale.

Introduzione

Le funzioni di ordine superiore di Swift — `map`, `filter` e `reduce` — trasformano le collezioni senza modificarle. Rendono esplicite le intenzioni ed eliminano i cicli soggetti a errori.

map — Trasformazione di ogni elemento

```swift let nums = [1, 2, 3, 4] let doubled = nums.map { $0 * 2 } // [2,4,6,8] let strings = nums.map { "Item \($0)" } // ["Item 1","Item 2",...] ``` `map` applica una closure a ogni elemento e restituisce un nuovo array contenente i risultati.

filter — Conservazione degli elementi corrispondenti

```swift let scores = [45, 80, 92, 37, 68] let passing = scores.filter { $0 >= 60 } // [80,92,68] let even = (1...10).filter { $0 % 2 == 0 } // [2,4,6,8,10] ``` `filter` restituisce un nuovo array contenente solo gli elementi per i quali la closure restituisce `true`.

reduce — Combinazione in un unico valore

```swift let nums = [1, 2, 3, 4, 5] let sum = nums.reduce(0) { $0 + $1 } // 15 let product = nums.reduce(1, *) // 120 let joined = ["a","b","c"].reduce("") { $0 + $1 } // "abc" ```

Concatenamento di map, filter e reduce

```swift let result = (1...10) .filter { $0 % 2 == 0 } // [2,4,6,8,10] .map { $0 * $0 } // [4,16,36,64,100] .reduce(0, +) // 220 ``` Il concatenamento si legge da sinistra a destra ed esprime chiaramente la pipeline dei dati.

compactMap — Mappatura ed estrazione

```swift let strings = ["1","two","3","four","5"] let nums = strings.compactMap { Int($0) } // [1,3,5] ``` `compactMap` trasforma i valori e rimuove i risultati nil: è ideale per le conversioni che possono fallire.

flatMap — Appiattimento degli array annidati

```swift let nested = [[1,2,3],[4,5],[6]] let flat = nested.flatMap { $0 } // [1,2,3,4,5,6] let words = ["hello world","foo bar"] let all = words.flatMap { $0.split(separator: " ") } // ["hello","world","foo","bar"] ```

forEach — Solo effetti collaterali

```swift [1, 2, 3].forEach { print($0) } ``` `forEach` è simile a un ciclo `for-in`, ma non consente di utilizzare `break` o `continue`. Lo utilizzi solo quando servono effetti collaterali e non è necessario interrompere il ciclo in anticipo.

reduce(into:) per i dizionari

```swift let words = ["apple","banana","apricot","blueberry"] let grouped = words.reduce(into: [Character:[String]]()) { dict, word in let key = word.first! dict[key, default: []].append(word) } // ["a":["apple","apricot"],"b":["banana","blueberry"]] ```

Concatenamenti lazy per le prestazioni

```swift let lazyResult = (1...1_000_000) .lazy .filter { $0 % 7 == 0 } .map { $0 * 2 } .prefix(5) // No intermediate arrays created! ``` Aggiunga `.lazy` all'inizio di un concatenamento per eseguire le operazioni su richiesta.

Verifica rapida

Quale funzione trasforma ogni elemento e rimuove i risultati nil?

Riepilogo

Concetti chiave: • `map` — trasforma ogni elemento in un nuovo array • `filter` — conserva gli elementi che corrispondono a un predicato • `reduce` — combina gli elementi in un unico valore accumulato • `compactMap` — trasforma e scarta i valori nil • `flatMap` — trasforma e appiattisce le sequenze annidate • Concatenare con `.lazy` evita le allocazioni intermedie Successivo: array 2D e collezioni annidate.

Domande Frequenti

La lezione «Map, filter e reduce sugli array» è gratuita?

Sì — il testo completo di «Map, filter e reduce sugli array» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Swift Academy, passa a CoddyKit PRO. Il corso Swift Academy include 4 lezioni in totale.

Cosa imparerò in «Map, filter e reduce sugli array»?

Trasformi gli array con funzioni di ordine superiore in stile funzionale. Eserciti Swift Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Swift Academy?

Non è richiesta alcuna esperienza precedente. Swift Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 4.

Quanto tempo richiede la lezione «Map, filter e reduce sugli array»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Swift Academy?

Sì. Ogni lezione Swift Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Creazione e modifica degli array
  2. Ordinamento, ricerca e slicing
  3. Map, filter e reduce sugli array
  4. Array 2D e collezioni annidate
← Torna a Swift Academy