Zoeken…


Opmerkingen

Sommige voorbeelden in dit onderwerp kunnen een andere volgorde hebben wanneer ze worden gebruikt, omdat de woordenboekvolgorde niet is gegarandeerd.

Woordenboeken verklaren

Woordenboeken zijn een ongeordende verzameling sleutels en waarden. Waarden hebben betrekking op unieke sleutels en moeten van hetzelfde type zijn.

Bij het initialiseren van een woordenboek is de volledige syntaxis als volgt:

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

Hoewel een kortere manier om te initialiseren:

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

Verklaar een woordenboek met sleutels en waarden door ze op te geven in een door komma's gescheiden lijst. De typen kunnen worden afgeleid uit de soorten sleutels en waarden.

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"]

Woordenboeken aanpassen

Voeg een sleutel en waarde toe aan een woordenboek

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

updateValue retourneert de oorspronkelijke waarde als deze bestaat of nul is.

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

Verwijder waarde en hun sleutels met dezelfde syntaxis

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

Toegang tot waarden

Een waarde in een Dictionary kan worden geopend met behulp van de sleutel:

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

De waarden van een woordenboek kunnen worden herhaald met behulp van de eigenschap values :

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

Op dezelfde manier kunnen de sleutels van een woordenboek worden herhaald met behulp van de eigenschap keys :

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

Om alle key en value met elkaar te corresponderen (je krijgt niet de juiste volgorde omdat het een woordenboek is)

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

Merk op dat een Dictionary , anders dan een Array , inherent ongeordend is, dat wil zeggen, er is geen garantie op de volgorde tijdens iteratie.

Als u toegang wilt tot meerdere niveaus van een woordenboek, gebruikt u een herhaalde subscriptsyntaxis.

// 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"

Wijzig de waarde van het woordenboek met de sleutel

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

Krijg alle sleutels in Dictionary

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

Twee woordenboeken samenvoegen

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
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow