Map
Fa parte della sezione Logica e flusso del percorso Swift di Coddy. Lezione 23 di 56.
map accetta una closure e la applica a ogni elemento, restituendo un nuovo array dei risultati. Il nuovo array ha la stessa lunghezza dell'array di origine.
let nums = [1, 2, 3, 4]
let doubled = nums.map { $0 * 2 }
print(doubled) // [2, 4, 6, 8]$0 è una forma abbreviata per il primo parametro della closure. La forma più lunga specifica il nome del parametro e il tipo restituito:
let doubled = nums.map { (n: Int) -> Int in
return n * 2
}map può anche cambiare il tipo di elemento. Applicando una trasformazione a un [Int] tramite una closure che restituisce String, ottieni un [String]:
let labels = nums.map { "#\($0)" }
print(labels) // ["#1", "#2", "#3", "#4"]Sfida
FacileLeggi una singola riga di input: un elenco di numeri interi separati da virgole (temperature in Fahrenheit).
Converti ciascuna temperatura in Celsius usando la formula C = (F - 32) * 5 / 9 con aritmetica intera (tronca verso zero, senza decimali). Stampa, su righe separate:
- Le temperature in Celsius, unite con
, - Un'etichetta per ogni temperatura con il prefisso
F=<f> C=<c>, unite con;
Usa map per entrambe le righe.
Per l'input 32,212,98,0, l'output è:
0,100,36,-17
F=32 C=0;F=212 C=100;F=98 C=36;F=0 C=-17Provalo tu
let f = readLine()!.components(separatedBy: ",").map { Int($0)! }
// TODO: riga 1 = valori celsius uniti con ","
// TODO: riga 2 = etichette "F=<f> C=<c>" unite con ";"
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Logica e flusso
1Le stringhe in dettaglio
Conteggio e indiciMaiuscole, minuscole e rimozione degli spaziRicerca nelle stringheSuddivisione e unioneSostituzione di sottostringheRiepilogo - Verifica del nome utente4Insiemi
Creare insiemiUnione e intersezioneDifferenza e differenza simmetricaSottoinsieme e sovrainsiemeRiepilogo - Filtro per tag7Progetto - Tracciatore di abitudini
Panoramica del progettoSegna come completato10Progetto - Motore di quiz
Panoramica del progettoPorre domande2Intervalli e passi
Intervalli chiusi e semiapertiPassoMetodi degli intervalliIntervalli in switchRiepilogo - Griglia del calendario5Funzioni di ordine superiore Parte 1
MapFilterReduceConcatenare map, filter e reduceRiepilogo - Statistiche sulle paroleEsercitati da solo: Playground Swift