Projektübersicht
Teil des Abschnitts Logik & Kontrollfluss der Swift-Journey von Coddy — Lektion 33 von 56.
Du wirst einen winzigen Gewohnheits-Tracker bauen. Der Status befindet sich in einem einzigen Dictionary, das einen Gewohnheitsnamen auf seinen Verlauf der erledigten Tage für die Woche abbildet:
var habits: [String: [Int]] = [
"read": [1, 3, 5], // erledigt am Mo, Mi, Fr
"workout": [2, 4] // erledigt am Di, Do
]Tage sind Ganzzahlen 1...7 für Mo...So. In den nächsten vier Lektionen werden Sie nacheinander Funktionen hinzufügen:
- Eine Gewohnheit hinzufügen und als erledigt markieren
- Streaks über die Woche hinweg berechnen
- Ein wöchentliches Raster drucken
- Zwei Wochen vergleichen
Jede Lektion steht für sich allein; Sie deklarieren das Dictionary am Anfang jeder Datei neu. Der State hat dieselbe Struktur, sodass die von Ihnen geschriebenen Methoden über die Lektionen hinweg übernommen werden können.
Aufgabe
AnfängerUm das Projekt zu starten, schreibe den Code für das Daten-Setup:
- Initialisiere ein leeres
habitsDictionary ([String: [Int]]) - Gib die Anzahl der habits aus
- Gib aus, ob das Dictionary leer ist
Die erwartete Ausgabe ist:
0
trueSpickzettel
Ein Habit-Tracker kann als Dictionary modelliert werden, das Habit-Namen auf Arrays von abgeschlossenen Tagesnummern abbildet (1...7 für Mo–So):
var habits: [String: [Int]] = [
"read": [1, 3, 5], // erledigt am Mo, Mi, Fr
"workout": [2, 4] // erledigt am Di, Do
]Nützliche Dictionary-Eigenschaften:
habits.count // Anzahl der Einträge
habits.isEmpty // true, wenn keine Einträge vorhanden sindProbier es selbst
// TODO: deklariere ein leeres [String: [Int]], dann gib count und isEmpty aus
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 TrimmenSuchen in StringsTeilen und ZusammenfügenTeilstrings ersetzenWiederholung – Benutzernamen-Check4Mengen
Mengen erstellenVereinigung und SchnittmengeDifferenz und symmetrische DifferenzTeilmenge und ObermengeRückblick – Tag-Filter7Projekt - Habit Tracker
ProjektübersichtAls erledigt markieren2Bereiche & Schrittweiten
Geschlossen vs. halboffenSchrittweiteRange-MethodenRanges in SwitchRückblick – Kalender-Grid5Funktionen höherer Ordnung Teil 1
MapFilterReduceVerkettung von map, filter, reduceRückblick – Wortstatistiken