Sobes.tech
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:) и ==.

Таким образом, шаги:

  1. Убедиться, что все свойства структуры соответствуют Hashable.
  2. Сделать структуру или класс соответствующим протоколу Hashable.
  3. Использовать эту структуру как ключ в словаре.