Sobes.tech
Back to questions
Junior — Middle
80

Можно ли использовать сложную структуру данных в качестве ключа в словаре?

Answer from AI

sobes.tech AI

В словарях (Dictionary) в iOS (Swift) ключами могут быть только те типы, которые соответствуют протоколу Hashable. Это значит, что сложная структура данных может быть ключом, если она реализует хеширование и сравнение на равенство.

Например, если у вас есть структура:

struct Point: Hashable {
    let x: Int
    let y: Int
}

то вы можете использовать Point как ключ в словаре:

var dict: [Point: String] = [:]
dict[Point(x: 1, y: 2)] = "Точка A"

Если структура не соответствует Hashable, то её нельзя использовать в качестве ключа. В этом случае нужно либо добавить соответствие протоколу, либо использовать другой тип ключа.