Sobes.tech
Junior — Middle

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

sobes.tech AI

Отговор от AI

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

  1. Да се обяви съответствието към протокола в декларацията на структурата.
  2. Да се реализира функцията ==, която сравнява два екземпляра на структурата за равенство.

От Swift 4.1 нататък, компилаторът може автоматично да генерира реализация на == за структури, ако всички техни свойства също съответстват на Equatable.

Пример:

struct Point: Equatable {
    var x: Int
    var y: Int
}

// Автоматично генерирана реализация:
// static func == (lhs: Point, rhs: Point) -> Bool {
//     return lhs.x == rhs.x && lhs.y == rhs.y
// }

let p1 = Point(x: 1, y: 2)
let p2 = Point(x: 1, y: 2)
print(p1 == p2) // true

Ако е необходима персонализирана проверка, операторът може да бъде реализиран ръчно:

struct Person: Equatable {
    var name: String
    var age: Int

    static func == (lhs: Person, rhs: Person) -> Bool {
        return lhs.name.lowercased() == rhs.name.lowercased() && lhs.age == rhs.age
    }
}