Sobes.tech
Junior — Middle

Jaké principy a požadavky je třeba vzít v úvahu při vytváření struktury nebo třídy implementující protokol Equatable?

sobes.tech AI

Odpověď od AI

Při implementaci protokolu Equatable ve struktuře nebo třídě je nutné:

  • Definovat statickou metodu ==, která porovnává dva instance typu a vrací true, pokud jsou považovány za rovné.
  • Porovnat všechny významné vlastnosti, které ovlivňují rovnost objektů.
  • Zajistit, aby porovnání bylo symetrické, reflexivní a tranzitivní.

Příklad implementace pro strukturu:

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
    }
}

Pokud všechny vlastnosti již odpovídají Equatable, může kompilátor automaticky vygenerovat implementaci.