Projektübersicht
Teil des Abschnitts Logik & Kontrollfluss der Swift-Journey von Coddy — Lektion 49 von 56.
Das zweite Projekt ist eine Quiz-Engine. Der Status ist eine Liste von Fragen, jeweils ein Tupel aus (category, text, answer):
var questions: [(String, String, String)] = [
("math", "2 + 2?", "4"),
("geo", "Capital of France?", "paris")
]In den nächsten vier Lektionen werden Sie nacheinander Funktionen hinzufügen:
- Fragen hinzufügen und sie der Reihe nach stellen
- Antworten bewerten (Groß-/Kleinschreibung ignorieren, getrimmt)
- Nach Kategorie filtern
- Den Durchlauf mit einer Aufschlüsselung pro Kategorie zusammenfassen
Wie beim Habit Tracker steht jede Lektion für sich; du wirst die Fragen-Datenbank am Anfang jeder Datei neu erstellen.
Aufgabe
AnfängerSchreibe zu Beginn den Code für das Daten-Setup:
- Initialisiere ein leeres Array von Fragen (
[(String, String, String)]) - Gib die Anzahl (count) aus
- Gib aus, ob das Array leer ist
Die erwartete Ausgabe ist:
0
trueSpickzettel
Eine Quiz-Engine speichert Fragen als eine Liste von Tupeln mit (category, text, answer):
var questions: [(String, String, String)] = [
("math", "2 + 2?", "4"),
("geo", "Capital of France?", "paris")
]Nützliche Array-Eigenschaften:
questions.count // Anzahl der Elemente
questions.isEmpty // true, wenn keine Elemente vorhanden sindProbier es selbst
// TODO: Deklariere ein leeres [(String, String, String)] namens questions,
// 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 markieren10Projekt – Quiz-Engine
ProjektübersichtFragen stellen2Bereiche & Schrittweiten
Geschlossen vs. halboffenSchrittweiteRange-MethodenRanges in SwitchRückblick – Kalender-Grid5Funktionen höherer Ordnung Teil 1
MapFilterReduceVerkettung von map, filter, reduceRückblick – Wortstatistiken