Sobes.tech
Junior — Middle

Какви типове данни или обекти могат да служат като ключове в речници или хеш таблици?

sobes.tech AI

Отговор от AI

В речниците (dictionary) или хеш таблиците ключовете могат да бъдат обекти, които отговарят на следните изисквания:

  • Имат правилно реализирани методи за сравнение на равенство (equals в Java, isEqual в Swift) и изчисляване на хеш код (hashCode в Java).
  • Са неизменяеми (immutable) или поне не се променят след използването им като ключ, за да се избегнат проблеми при търсенето.

В iOS (Swift), ключовете в речниците (Dictionary) обикновено са типове, които съответстват на протокола Hashable. Те могат да бъдат:

  • Стандартни типове: String, Int, Double, Bool.
  • Потребителски структури или класове, които реализират протокола Hashable.

Пример:

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

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

Следователно, ключовете трябва да бъдат хешируеми и неизменяеми за правилната работа на речника.