Sobes.tech
Junior — Middle

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

sobes.tech AI

Отговор от AI

В iOS (Swift) ключът за речник (Dictionary) може да бъде всеки тип, който съответства на протокола Hashable. Това означава, че ключът трябва да може да изчислява хеш код и да поддържа сравнение за равенство.

Типовете, които по подразбиране съответстват на Hashable, включват:

  • Стандартни типове: Int, String, Double, Bool
  • Енумерации (enum), ако всички техни асоциирани стойности също са Hashable
  • Структури (struct), ако всички техни свойства са Hashable

Пример:

let dict: [String: Int] = ["apple": 3, "banana": 5]

Ако искате да използвате собствен тип като ключ, трябва да реализирате протокола Hashable:

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

let peopleDict: [Person: String] = [Person(id: 1, name: "John"): "Developer"]