Sobes.tech
Назад к вопросам
Junior — Middle
69

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

Компании, где спрашивали
Летуаль

Ответ от нейросети

sobes.tech 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"]