Веб-версияОткрыть в Telegram

Пост😏 Ещё один пост на несложную тему от меня, чтобы проще и спокойнее вкатываться в рабочий процесс.

16 января 2026
E
Egor Mezhin
Фотография
нажмите — покажем
😏 Ещё один пост на несложную тему от меня, чтобы проще и спокойнее вкатываться в рабочий процесс. На этот раз про Equatable и Comparable. Вещи знакомые, но на практике ими часто пользуются по инерции, не всегда задумываясь, чем они отличаются. 🔹 Equatable отвечает ровно на один вопрос: равны ли два значения между собой. struct User: Equatable { let id: Int let name: String } Теперь можно: • сравнивать user1 == user2 • использовать removeDuplicates() • помогать SwiftUI понимать, изменилось ли состояние Где это обычно нужно: • модели данных • state в SwiftUI • тесты Важно: Equatable ничего не говорит про порядок. Только одинаковые значения или нет. 🔹 Comparable нужен тогда, когда элементы можно упорядочить. struct Score: Comparable { let value: Int static func < (lhs: Score, rhs: Score) -> Bool { lhs.value < rhs.value } } После этого можно: • сортировать массивы • использовать min() и max() • работать с диапазонами scores.sorted() scores.max() Важный момент: если тип Comparable, он автоматически обязан быть Equatable. Если мы умеем сравнивать порядок, мы обязаны понимать равенство. 🔹 В проектах нередко встречается: • Comparable, хотя сортировка нигде не используется • сложная логика сравнения «на будущее» • протоколы, добавленные просто на всякий случай На практике это редко даёт пользу и чаще усложняет модель. 🍕 Equatable и Comparable решают разные задачи, и в большинстве случаев достаточно минимально необходимого протокола. Иногда полезно просто спросить себя: я хочу проверить равенство или действительно упорядочить данные? Ответ на этот вопрос часто делает модель и код вокруг неё заметно проще. #R #Swift #SwiftUI 👏
1 · 284 ·

Рядом в ленте

EEgor Mezhin😅 Вслед за остальными черепашками медленно вылезаю из панциря после новогодних праздников. Решил начать с темы несложной, но полезной. Про Xcode File Templates KKirill Smirnov🦾 Наткнулся на пост про mise — резонирует с моим опытом, поэтому мои мысли: Mise приносит апгрейды в повседневную работу с окружением. - убирает кучу неудобств,
это сообщение
SSergio Petrov😄Рубрика кликбейт или "потраченного времени жаль" Листал свой фид, искал вдохновение о чем бы написать в канал и нашелся, на первый взгляд, идеальный кандидат нVVlad Tkachenko😄 Что такое модульность и когда она нужна? Модульность это разделение кодовой базы на четко очерченные, изолированные единицы с явными границами ответственности
YYDC — Pizza Powered iOSYDC — Pizza Powered iOS@YoungDaCode · канал · Технологии
243подписчиков150постов в индексе
Лента площадки Открыть в Telegram

Открытая публичная лента из поискового индекса ChatCrawler — «Google по публичному Telegram»; обновляется по мере обхода площадки. Время — UTC.

Только публичный контент, официальный API Telegram. О проекте · Вопросы · Чего мы не делаем · Убрать страницу из выдачи · Каталог · Поиск · Как мы считаем