Sobes.tech
Back to questions
Junior — Middle
79

Как определить правильный тип ключа для использования в словаре?

Companies where asked
WildberriesWildberries
Touch Instinct

Answer from AI

sobes.tech AI

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

Например, стандартные типы, такие как String, Int, UUID, уже реализуют Hashable и подходят для использования в качестве ключей.

Если вы создаёте собственный тип для ключа, нужно реализовать протокол Hashable:

struct User: Hashable {
    let id: Int
    let name: String
}

var dict: [User: String] = [:]
dict[User(id: 1, name: "Alice")] = "Developer"

Таким образом, правильный тип ключа — это тип, который:

  • реализует Hashable;
  • имеет уникальные значения для ключей, чтобы избежать коллизий;
  • является неизменяемым (лучше использовать структуры или неизменяемые свойства).