Suche…


Bemerkungen

Einige Beispiele in diesem Thema weisen möglicherweise eine andere Reihenfolge auf, da die Wörterbuchreihenfolge nicht garantiert werden kann.

Wörterbücher deklarieren

Wörterbücher sind eine ungeordnete Sammlung von Schlüsseln und Werten. Werte beziehen sich auf eindeutige Schlüssel und müssen vom selben Typ sein.

Beim Initialisieren eines Wörterbuchs lautet die vollständige Syntax wie folgt:

var books : Dictionary<Int, String> = Dictionary<Int, String>()

Obwohl eine kürzere Art der Initialisierung:

var books = [Int: String]()
// or
var books: [Int: String] = [:]

Deklarieren Sie ein Wörterbuch mit Schlüsseln und Werten, indem Sie diese in einer durch Kommas getrennten Liste angeben. Die Typen können aus den Typen von Schlüsseln und Werten abgeleitet werden.

var books: [Int: String] = [1: "Book 1", 2: "Book 2"]
//books = [2: "Book 2", 1: "Book 1"] 
var otherBooks = [3: "Book 3", 4: "Book 4"]
//otherBooks = [3: "Book 3", 4: "Book 4"]

Wörterbücher ändern

Fügen Sie einem Wörterbuch einen Schlüssel und einen Wert hinzu

var books = [Int: String]()
//books = [:]
books[5] = "Book 5"
//books = [5: "Book 5"]
books.updateValue("Book 6", forKey: 5)
//[5: "Book 6"]

updateValue gibt den ursprünglichen Wert zurück, falls vorhanden oder nicht vorhanden ist.

let previousValue = books.updateValue("Book 7", forKey: 5)
//books = [5: "Book 7"]
//previousValue = "Book 6"

Entfernen Sie den Wert und ihre Schlüssel mit ähnlicher Syntax

books[5] = nil
//books [:]
books[6] = "Deleting from Dictionaries"
//books = [6: "Deleting from Dictionaries"]
let removedBook = books.removeValueForKey(6)
//books = [:]
//removedValue = "Deleting from Dictionaries"

Auf Werte zugreifen

Auf einen Wert in einem Dictionary kann mit seinem Schlüssel zugegriffen werden:

var books: [Int: String] = [1: "Book 1", 2: "Book 2"]
let bookName = books[1]
//bookName = "Book 1"

Die Werte eines Wörterbuchs können mit der values -Eigenschaft durchlaufen werden:

for book in books.values {
    print("Book Title: \(book)")
}
//output: Book Title: Book 2
//output: Book Title: Book 1

In ähnlicher Weise können die Schlüssel eines Wörterbuchs mit seiner keys durchlaufen werden:

for bookNumbers in books.keys {
    print("Book number: \(bookNumber)")
}
// outputs:
// Book number: 1
// Book number: 2

Um alle key und value Paar einander entsprechen (Sie werden nicht in der richtigen Reihenfolge bekommen , da es ein Wörterbuch ist)

for (book,bookNumbers)in books{
print("\(book)  \(bookNumbers)")
}
// outputs:
// 2  Book 2
// 1  Book 1

Beachten Sie, dass ein Dictionary im Gegensatz zu einem Array an sich ungeordnet ist, dh es gibt keine Garantie für die Reihenfolge während der Wiederholung.

Wenn Sie auf mehrere Ebenen eines Wörterbuchs zugreifen möchten, verwenden Sie eine wiederholte Indexsyntax.

// Create a multilevel dictionary.
var myDictionary: [String:[Int:String]]! = ["Toys":[1:"Car",2:"Truck"],"Interests":[1:"Science",2:"Math"]]

print(myDictionary["Toys"][2]) // Outputs "Truck"
print(myDictionary["Interests"][1]) // Outputs "Science"

Ändern Sie den Wert des Wörterbuchs mit dem Schlüssel

var dict = ["name": "John", "surname": "Doe"]
// Set the element with key: 'name' to 'Jane'
dict["name"] = "Jane"
print(dict)

Holen Sie sich alle Schlüssel im Wörterbuch

let myAllKeys = ["name" : "Kirit" , "surname" : "Modi"]
let allKeys = Array(myAllKeys.keys)
print(allKeys)

Zwei Wörterbücher zusammenführen

extension Dictionary {
    func merge(dict: Dictionary<Key,Value>) -> Dictionary<Key,Value> {
        var mutableCopy = self
        for (key, value) in dict {
            // If both dictionaries have a value for same key, the value of the other dictionary is used.
            mutableCopy[key] = value
        }
        return mutableCopy
    }
}


Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow