Что может быть ключом и значением для словаря (dictionary)?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
Ключом в Swift Dictionary может быть любой тип, который соответствует протоколу Hashable.
Значением в Swift Dictionary может быть любой тип.
// Пример ключа: String (Hashable)
var stringDictionary: [String: Int] = ["один": 1, "два": 2]
// Пример ключа: Int (Hashable)
var intDictionary: [Int: String] = [1: "iPhone", 2: "iPad"]
// Пример ключа: Пользовательский тип, соответствующий Hashable
struct Coordinate: Hashable {
let x: Int
let y: Int
}
var coordinateDictionary: [Coordinate: String] = [Coordinate(x: 0, y: 0): "Старт", Coordinate(x: 1, y: 1): "Финиш"]
// Пример значений: Различные типы
var mixedValueDictionary: [String: Any] = ["число": 10, " строка": "привет", "массив": [1, 2, 3]]
Протокол Hashable объединяет протоколы Equatable и Hashable. Объект, соответствующий Hashable, предоставляет целочисленное хеш-значение, которое одинаково для двух объектов, считающихся равными. Это позволяет использовать такие объекты в хешированных коллекциях, таких как словари и множества.
Большинство стандартных типов Swift (строки, числа, булевы значения, структуры с хешируемыми свойствами) уже соответствуют Hashable. Для пользовательских типов необходимо явно реализовать func hash(into hasher: inout Hasher) или убедиться, что их свойства соответствуют Hashable.