Назад к вопросам
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"]