Swift Language
Wörterbücher
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
}
}