Menu
Coddy logo textTech

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)          // false

Die 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ürde

Das 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.

challenge icon

Aufgabe

Einfach

Lies 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:

  1. Die Anzahl der Einträge im Dictionary
  2. name=<value> unter Verwendung von Subscript-Zugriff
  3. country=<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=UK

Spickzettel

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) // false

Erstellen 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
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Logik & Kontrollfluss