Map
Teil des Abschnitts Logik & Kontrollfluss der Swift-Journey von Coddy. Lektion 23 von 56.
map nimmt eine Closure entgegen und wendet sie auf jedes Element an, wobei ein neues Array mit den Ergebnissen zurückgegeben wird. Das neue Array hat dieselbe Länge wie die Quelle.
let nums = [1, 2, 3, 4]
let doubled = nums.map { $0 * 2 }
print(doubled) // [2, 4, 6, 8]$0 ist eine Kurzform für den ersten Parameter der Closure. Die längere Form schreibt den Parameternamen und den Rückgabetyp aus:
let doubled = nums.map { (n: Int) -> Int in
return n * 2
}map kann auch den Elementtyp ändern. Wenn du ein [Int] durch eine Closure abbildest, die String zurückgibt, erhältst du ein [String]:
let labels = nums.map { "#\($0)" }
print(labels) // ["#1", "#2", "#3", "#4"]Aufgabe
EinfachLies eine einzelne Eingabezeile ein: eine durch Kommas getrennte Liste von Ganzzahlen (Temperaturen in Fahrenheit).
Wandle jede davon mit der Formel C = (F - 32) * 5 / 9 in Ganzzahlarithmetik in Celsius um (gegen null abschneiden, keine Dezimalstellen). Gib in separaten Zeilen Folgendes aus:
- Die Celsius-Temperaturen, verbunden mit
, - Ein Label pro Temperatur mit dem Präfix
F=<f> C=<c>, verbunden mit;
Verwende map für beide Zeilen.
Für die Eingabe 32,212,98,0 lautet die Ausgabe:
0,100,36,-17
F=32 C=0;F=212 C=100;F=98 C=36;F=0 C=-17Probier es selbst
let f = readLine()!.components(separatedBy: ",").map { Int($0)! }
// TODO: Zeile 1 = Celsius verbunden mit ","
// TODO: Zeile 2 = Labels "F=<f> C=<c>" verbunden mit ";"
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Logik & Kontrollfluss
1Strings im Detail
Zählen und IndizesGroß-/Kleinschreibung und TrimSuchen in StringsAufteilen und ZusammenfügenTeilstrings ersetzenRückblick – Benutzernamen prüfen4Mengen
Mengen erstellenVereinigung und SchnittmengeSubtraktion und symmetrische DifferenzTeilmenge und ObermengeWiederholung – Tag-Filter7Projekt – Gewohnheitstracker
ProjektübersichtAls erledigt markieren2Bereiche & Schrittweiten
Geschlossen vs. halboffenSchrittweiteBereichsmethodenBereiche in SwitchRückblick – Kalender-Raster5Funktionen höherer Ordnung Teil 1
MapFilterReduceVerketten von Map, Filter und ReduceRückblick – WortstatistikÜbe selbstständig: Swift-Playground