Sobes.tech
Junior — Middle

Какви принципи и изисквания трябва да се вземат предвид при създаването на структура или клас, реализиращ протокола Equatable?

sobes.tech AI

Отговор от AI

При реализиране на протокола Equatable в структура или клас, е необходимо:

  • Да дефинирате статичен метод ==, който сравнява два екземпляра от типа и връща true, ако се считат за равни.
  • Да сравните всички значими свойства, които влияят на равенството на обектите.
  • Да осигурите симетричност, рефлексивност и транзитивност на сравнението.

Пример за реализация за структура:

struct User: Equatable {
    let id: Int
    let name: String

    static func == (lhs: User, rhs: User) -> Bool {
        return lhs.id == rhs.id && lhs.name == rhs.name
    }
}

Ако всички свойства вече съответстват на Equatable, компилаторът може автоматично да генерира реализация.