Per Header-Dokumentation auf Dictionary
in Swift:Was ist der Zweck eines DictionaryIndex in Swift?
Eine Hash-basierte Abbildung von
Key
zuValue
Instanzen. Auch eine Sammlung von Schlüssel-Wert-Paaren ohne definierte Reihenfolge.
Beachten Sie insbesondere - no defined ordering
.
dies mit im Auge, ich bin diese berechneten Variablen voll Mühe, zu verstehen (und die damit verbundenen Methoden, die diese Art nehmen):
// 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 }
Der „Index“ ist hier ein DictionaryIndex
.
Allerdings ist die Dokumentation auf DictionaryIndex
irgendwie Kreis hier:
verwendet, um die Schlüssel-Wert-Paare in einer Instanz von
Dictionary<Key, Value>
zuzugreifen.
Was ist eigentlich der Zweck von DictionaryIndex
?
Ich bin mir nicht sicher, aber "keine definierte Reihenfolge" bedeutet keine zufällige Reihenfolge. 'NSDictionary' hat eine definierte Reihenfolge für die Schlüssel, es ist nur, dass Apple nicht dokumentiert, was es ist und es in Zukunft ändern kann. Die Schlüssel werden in der Reihenfolge sortiert, in der der Wörterbuchzugriff am schnellsten ist (oder im Fall von NSMutableDictionary das Wörterbuch am schnellsten ändern). –
@AbhiBeckert, Sie machen einen interessanten Punkt. Ich konnte sehen, wie die Sortierung nach Hash beispielsweise eine binäre Suche möglich machen würde. Vielleicht passiert tatsächlich eine andere Magie hinter den Kulissen? Bin immer noch nicht sicher über DictionaryIndex, aber danke für die Eingabe! :) –
Sie * können * ein Wörterbuch mit einem DictionaryIndex subscript (ich denke, das ist, was Amit89 in der Antwort meinte, die gerade jetzt gelöscht wurde). Beispiel: 'if let index = d.IndexForKey (" Schlüssel ") {let (k, v) = d [index]; println ((k, v))} '. –