TGViewer
Мобильный трудоголик Мобильный трудоголик @hardworkerit · 1.65K subscribers
Post #14 315
🔢 Протокол Equatable: как сравнивать пользовательские типы в Swift.

В Swift протокол Equatable позволяет сравнивать объекты между собой с помощью оператора ==. Многие стандартные типы (например, String, Int, Float) уже соответствуют этому протоколу. Но если вы создаёте собственный тип, его нужно явно подписать под Equatable, чтобы включить сравнение.

Как добавить поддержку Equatable для своего типа?
Достаточно указать протокол после имени типа:

struct MyStruct: Equatable {
let title: String
let count: Int
}


Swift может автоматически сгенерировать реализацию ==, если все свойства типа тоже поддерживают Equatable (как в примере выше).

Но если логика сравнения сложнее, можно реализовать метод вручную:

struct MyStruct: Equatable {
let title: String
let count: Int

static func == (lhs: MyStruct, rhs: MyStruct) -> Bool {
return lhs.title == rhs.title && lhs.count == rhs.count
}
}


Пример использования:

let firstStruct = MyStruct(title: "first", count: 1)
let secondStruct = MyStruct(title: "second", count: 2)

if firstStruct == secondStruct {
print("Равно")
} else {
print("Не равно")
}


После выполнения данного кода мы увидим следующий результат:
Не равно


➡️ Подписаться на канал
Мобильный трудоголик
  • 👍 6
  • 👏 3
  • 🔥 1
More from @hardworkerit
  1. Oct 12, 2026🔢 Асимметричные скругления углов на iPhone Duo и как с ними работать. На iPhone Duo углы…
  2. Oct 10, 2026🔢 Переиспользуемые превью в SwiftUI. SwiftUI-превью часто начинаются с простого кода. Но…
  3. Oct 9, 2026👨‍💻 Умение адаптироваться - важный навык айтишника, который часто недооценивают. В ИТ не…
  4. Oct 8, 2026🈸 Apple обяжет разработчиков поддерживать iPhone Duo. Apple опубликовала требования к при…
  5. Oct 6, 2026🔢 Swift 6.4: новая диагностика ретейн циклов. В Swift 6.4 появилась новая диагностика, ко…
  6. Oct 4, 2026🔢 SwiftUI: определение угла раскрытия iPhone Duo. В iOS 27.1 появился модификатор .onHing…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →