Dictionaries deklarieren
Teil des Abschnitts Logik & Kontrollfluss der Swift-Journey von Coddy — Lektion 12 von 56.
Ein Dictionary ist eine ungeordnete Sammlung von Schlüssel/Wert-Paaren. Sowohl der Schlüsseltyp als auch der Werttyp sind festgelegt, wenn Sie es erstellen.
var prices: [String: Int] = [
"apple": 1,
"bread": 3,
"milk": 4
]
print(prices.count) // 3
print(prices.isEmpty) // falseDie Typannotation [String: Int] liest sich als „Schlüssel sind String, Werte sind Int“. Swift kann dies normalerweise aus dem Literal ableiten, aber das Ausschreiben macht leere Initialisierer eindeutig:
var counts: [String: Int] = [:]
// im Gegensatz zu einem leeren Array, das ebenfalls einen Typ benötigen würdeDas Lesen eines Schlüssels, der existiert, gibt den Wert zurück. Das Lesen eines Schlüssels, der nicht existiert, gibt nil zurück; die nächste Lektion behandelt diesen Teil.
Aufgabe
EinfachLies drei Zeilen Eingabe ein: einen Namen, ein Land und ein ganzzahliges Alter. Erstelle ein einzelnes Dictionary namens person mit String-Schlüsseln und den eingelesenen Werten (das Alter bleibt ein Int, du benötigst einen heterogenen Werttyp, siehe Hinweis).
Gib drei Zeilen aus:
- Die Anzahl der Einträge im Dictionary
name=<value>unter Verwendung von Subscript-Zugriffcountry=<value>unter Verwendung von Subscript-Zugriff
Verwende die druckbare Form: Wenn du den Dictionary-Wert als Any liest, erzwinge das Unwrapping (force-unwrap), bevor du ihn ausgibst.
Für die Eingabe Alice / UK / 30 lautet die Ausgabe:
3
name=Alice
country=UKSpickzettel
Ein Dictionary speichert Schlüssel/Wert-Paare mit festen Schlüssel- und Werttypen:
var prices: [String: Int] = [
"apple": 1,
"bread": 3,
"milk": 4
]
print(prices.count) // 3
print(prices.isEmpty) // falseErstellen Sie ein leeres Dictionary mit expliziter Typanmerkung:
var counts: [String: Int] = [:]Verwenden Sie [String: Any] für heterogene Werttypen (gemischte Typen):
var person: [String: Any] = [
"name": "Alice",
"age": 30
]Probier es selbst
let name = readLine()!
let country = readLine()!
let age = Int(readLine()!)!
// TODO: Erstelle ein [String: Any] namens person, gib count, name, country 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 – Wortstatistiken3Dictionaries
Dictionaries deklarierenOptionaler LookupDictionaries aktualisierenÜber Dictionaries iterierenWerte gruppierenZusammenfassung – Inventar6Funktionen höherer Ordnung Teil 2
compactMapflatMapsorted(by:)Pipelines erstellenZusammenfassung – Bestenliste