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

Какие шаги необходимо предпринять, чтобы использовать сложную структуру как ключ в словаре?

Компании, где спрашивали
WildberriesWildberries

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

sobes.tech 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. Использовать эту структуру как ключ в словаре.