Junior — Middle
Welke stappen moeten worden ondernomen om een complexe structuur als sleutel in een woordenboek te gebruiken?
sobes.tech AI
Antwoord van AI
Чтобы использовать сложную структуру (например, собственный класс или структуру) в качестве ключа в словаре (Dictionary) в Swift, необходимо, чтобы этот тип соответствовал протоколу Hashable. Это значит, что структура должна иметь корректно реализованный метод вычисления хэш-кода и сравнения на равенство.
Пример:
struct Person: Hashable {
let firstName: String
let lastName: String
// Компилятор автоматически сгенерирует hash(into:) и ==, если все свойства Hashable
}
var dict: [Person: String] = [:]
dict[Person(firstName: "Иван", lastName: "Иванов")] = "Пример значения"
Если структура содержит свойства, которые не соответствуют Hashable, нужно самостоятельно реализовать методы hash(into:) и ==.
Таким образом, шаги:
- Убедиться, что все свойства структуры соответствуют
Hashable. - Сделать структуру или класс соответствующим протоколу
Hashable. - Использовать эту структуру как ключ в словаре.