Per la documentazione intestazione Dictionary
a Swift:Qual è lo scopo di un DictionaryIndex in Swift?
Una mappatura hash-based da
Key
aValue
istanze. Anche una collezione di coppie chiave-valore senza ordini definiti.
Nota in particolare: no defined ordering
.
Con questo in mente, sto avendo problemi comprendere appieno queste variabili computerizzata (ei relativi metodi che accettano questi tipi):
// The position of the first element in a non-empty dictionary.
var startIndex: DictionaryIndex<Key, Value> { get }
// The collection's "past the end" position.
var endIndex: DictionaryIndex<Key, Value> { get }
L ' "indice" Ecco un DictionaryIndex
.
Tuttavia, la documentazione DictionaryIndex
è un pò circolare qui:
utilizzato per accedere al coppie di valori-chiave in un'istanza di
Dictionary<Key, Value>
.
Qual è in realtà lo scopo di DictionaryIndex
?
Non sono sicuro, tuttavia "nessun ordine definito" non significa ordinamento casuale. 'NSDictionary' ha un ordine definito per le chiavi, è solo che Apple non documenta ciò che è ed è soggetto a modifiche in futuro. Le chiavi sono ordinate in qualsiasi ordine per rendere l'accesso al dizionario il più veloce (o nel caso di NSMutableDictionary, rendere più veloce la modifica del dizionario). –
@AbhiBeckert, tu fai un punto interessante. Potrei vedere come ordinare per hash renderebbe possibile una ricerca binaria, ad esempio. Forse qualche altra magia dietro le quinte sta davvero accadendo? Ancora non sono sicuro di DictionaryIndex, ma grazie per l'input! :) –
Si * può * iscrivere un dizionario con un DictionaryIndex (penso che sia ciò che intendeva Amit89 nella risposta che è stata cancellata proprio ora). Esempio: 'if let index = d.indexForKey (" chiave ") {let (k, v) = d [indice]; println ((k, v))} '. –