Dictionaries in Swift

Was sind Dictionaries? Wie Arrays und Sets gehören sie zu den Collections (oder: Collection Types). Sie werden dazu verwendet, um darin Objekte nach dem Key-Value-Prinzip abzulegen. Dabei kann der Schlüssel nur einmal vorkommen.

Collection Types in Swift

Ein Dictionary lässt sich sehr einfach erstellen:

var capitolCities: Dictionary = ["Bayern" : "München", "Hessen" : "Wiesbaden"]

In Swift ist es nicht erforderlich, den Datentyp anzugeben (type annotation). Denn Swift ist in der Lage, selbigen selbständig zu ermitteln (type inference); möglich wäre also auch:

var capitolCities = ["Bayern" : "München", "Hessen" : "Wiesbaden"]

Es existiert noch folgende alternative Möglichkeit der Deklaration:

var age: Dictionary<String, Int> = ["Bob" : 24, "Tom" : 33]

Dictionaries können konstant (let) oder variabel (var) erzeugt werden. Sie sind dann dementsprechend unveränderbar (immutable) oder veränderbar (mutable).

Dictionaries geben ein Optional zurück. Deswegen muss entweder das Auspacken dieses Optionals mithilfe eines ! erzwungen werden (implicitly unwrapped) oder man nutzt if let.

let hessen = capitolCities["Hessen"]!
print("Die Hauptstadt von Hessen ist \(hessen).")
if let bayern = capitolCities["Bayern"] {
    print("Die Hauptstadt von Bayern ist \(bayern).")
}

Die Key-Value-Paare eines Dictionary können wie folgt durchlaufen und angezeigt werden:

for key in capitolCities.keys {
    print("Key: \(key) - Value: \(capitolCities[key]!)")
}

In der Konsole würde folgende Ausgabe angezeigt werden:

Key: Hessen - Value: Wiesbaden
Key: Bayern - Value: München

Die Schlüssel und Werte des Dictionary können wie folgt verändert werden:

// Schlüssel und Wert hinzufügen:
capitolCities["Thüringen"] = "Erfurt"

// Schlüssel und Wert verändern:
age["Bob"] = 25

// Schlüssel und Wert löschen:
age ["Tom"] = nil

Darüber hinaus existieren für das Verändern eines Dictionaries verschiedene Methoden:

age.updateValue(24, forKey: "Bob")
capitolCities.removeValueForKey("Thüringen")
capitolCities.removeAll(keepCapacity: true)

Durch Benutzung dieser Website erklären Sie sich mit der Verwendung von Cookies einverstanden. Mehr Informationen

Die Verwendung von Cookies dient dazu, Inhalte und Anzeigen zu personalisieren, Funktionen für soziale Medien anbieten zu können und die Zugriffe auf diese Website zu analysieren. Außerdem werden Informationen zur Nutzung dieser Webseite an Partner für soziale Medien, Werbung und Analysen weitergegeben.

Schließen