Если вы нажимаете , нажимаете Dictionary
, всплывающее окно очень подробно рассказывает о Dictionary
.
Три ключевых момента из документации Apple:
- Каждый словарь - это неупорядоченный набор пар ключ-значение .
- Порядок пар ключ-значение в словаре стабилен между мутациями, но в остальном непредсказуем.
- Если вам нужен упорядоченный набор пар ключ-значение и вам не нужен быстрый поиск ключей, который обеспечивает Словарь, см.
KeyValuePairs
тип для альтернативы.
опция - нажмите на KeyValuePairs
выходы (я добавил нумерацию):
- Используйте экземпляр
KeyValuePairs
, когда вам нужно упорядоченную коллекцию
пары ключ-значение и не требуют быстрого поиска ключа, что
Dictionary
тип обеспечивает.
- В отличие от пар ключ-значение в настоящем словаре,
ни ключ, ни значение
KeyValuePairs
экземпляра не должны соответствовать
к протоколу Hashable
.
- Вы инициализируете
KeyValuePairs
экземпляр
используя словарь Swift.
- Помимо поддержания порядка
оригинальный словарь,
KeyValuePairs
также допускает дублирование
ключи.
Вот ваш пример использования KeyValuePairs
:
let numberOfLegs: KeyValuePairs = ["spider": 8, "ant": 6, "cat": 4]
// Now this gives the order you expect
for (animalName, legCount) in numberOfLegs {
print("\(animalName)s have \(legCount) legs")
}
Выход:
spiders have 8 legs
ants have 6 legs
cats have 4 legs
// But KeyValuePairs cannot be used for fast key lookup like a Dictionary
// If you don't have duplicate keys, you can convert the KeyValuePairs
// to Dictionary like this for normal lookup operations
let numberOfLegsDict = Dictionary(uniqueKeysWithValues: numberOfLegs.map {(key: $0, value: $1)})
Примечание: KeyValuePairs
в Swift 4.2 и более ранних версиях называлось DictionaryLiteral
.