Sobes.tech
Junior — Middle

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

sobes.tech AI

Отговор от 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;
  • има уникални стойности за ключовете, за да избегне колизии;
  • е неизменяем (по-добре е да използвате структури или неизменяеми свойства).