Swift Language
dizionari
Ricerca…
Osservazioni
Alcuni esempi in questo argomento potrebbero avere un ordine diverso quando vengono utilizzati perché l'ordine dei dizionari non è garantito.
Dichiarazione dei dizionari
I dizionari sono una collezione non ordinata di chiavi e valori. I valori si riferiscono a chiavi univoche e devono essere dello stesso tipo.
Quando si inizializza un dizionario, la sintassi completa è la seguente:
var books : Dictionary<Int, String> = Dictionary<Int, String>()
Sebbene un modo più conciso di inizializzare:
var books = [Int: String]()
// or
var books: [Int: String] = [:]
Dichiarare un dizionario con chiavi e valori specificandoli in un elenco separato da virgole. I tipi possono essere dedotti dai tipi di chiavi e valori.
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"]
Modifica dei dizionari
Aggiungi una chiave e un valore a un dizionario
var books = [Int: String]()
//books = [:]
books[5] = "Book 5"
//books = [5: "Book 5"]
books.updateValue("Book 6", forKey: 5)
//[5: "Book 6"]
updateValue restituisce il valore originale se ne esiste uno o zero.
let previousValue = books.updateValue("Book 7", forKey: 5)
//books = [5: "Book 7"]
//previousValue = "Book 6"
Rimuovi il valore e le loro chiavi con sintassi simile
books[5] = nil
//books [:]
books[6] = "Deleting from Dictionaries"
//books = [6: "Deleting from Dictionaries"]
let removedBook = books.removeValueForKey(6)
//books = [:]
//removedValue = "Deleting from Dictionaries"
Accesso ai valori
È possibile accedere a un valore in un Dictionary
utilizzando la sua chiave:
var books: [Int: String] = [1: "Book 1", 2: "Book 2"]
let bookName = books[1]
//bookName = "Book 1"
I valori di un dizionario possono essere iterati usando la proprietà values
:
for book in books.values {
print("Book Title: \(book)")
}
//output: Book Title: Book 2
//output: Book Title: Book 1
Allo stesso modo, le chiavi di un dizionario possono essere iterate usando la sua proprietà keys
:
for bookNumbers in books.keys {
print("Book number: \(bookNumber)")
}
// outputs:
// Book number: 1
// Book number: 2
Per ottenere che tutte key
coppie di key
e value
corrispondano l'una all'altra (non entrerai nell'ordine corretto poiché è un dizionario)
for (book,bookNumbers)in books{
print("\(book) \(bookNumbers)")
}
// outputs:
// 2 Book 2
// 1 Book 1
Si noti che un Dictionary
, a differenza di una Array
, è intrinsecamente non ordinato, ovvero non esiste alcuna garanzia sull'ordine durante l'iterazione.
Se si desidera accedere a più livelli di un dizionario, utilizzare una sintassi ripetuta del pedice.
// 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"
Cambia valore del dizionario usando la chiave
var dict = ["name": "John", "surname": "Doe"]
// Set the element with key: 'name' to 'Jane'
dict["name"] = "Jane"
print(dict)
Ottieni tutte le chiavi nel dizionario
let myAllKeys = ["name" : "Kirit" , "surname" : "Modi"]
let allKeys = Array(myAllKeys.keys)
print(allKeys)
Unisci due dizionari
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
}
}