Описание тега equatable

Протокол Equatable Swift может использоваться, чтобы объекты использовали операторы равенства для сравнения.
3 ответа

Индекс (of:) и Equatable Protocol

class Person: Equatable { var name: String var age: Int init(name: String, age: Int) { self.name = name self.age = age } static func ==(lhs: Person, rhs: Person) -> Bool { return (lhs.name == rhs.name) && (lhs.age == rhs.age) } } let p1 =…
11 июн '17 в 19:57
2 ответа

Удалить дубликаты из многомерного массива

Я написал следующее расширение, чтобы удалить дубликаты из моего массива. extension Array where Element : Equatable{ func removeDups() -> [Element]{ var result = [Element]() for element in self{ if !result.contains(element){ result.append(element…
10 май '18 в 14:48
1 ответ

Метод Hashable == не обнаруживает разницу между двумя объектами swift

Я реализовал класс ниже: class Table : Hashable { var uid : Int var timeRemaining : Int? var currentPrice : Double? var hashValue: Int { return uid.hashValue } static func ==(lhs: Table, rhs: Table) -> Bool { return lhs.uid == rhs.uid && …
22 фев '19 в 23:50
2 ответа

Swift 3: Как написать экватируемый функционал

Я пытаюсь использовать структуру в качестве моего ключа для словаря. Код работает для swift 2Однако не для swift 3 как на картинке ссылка. Соответствующий код:
07 июл '16 в 10:50
3 ответа

Как правильно реализовать Equatable протокол в иерархии классов?

Я пытаюсь реализовать == оператор (от Equatable) в базовом классе и его подклассах в Swift 3. Все классы будут использоваться только в Swift, поэтому я не хочу привлекать NSObject или NSCopying протокол. Я начал с базового класса и подкласса: class …
07 окт '16 в 05:08
3 ответа

Как CLLocation реализует Equatable протокол?

Отвечая на другой вопрос о SO, я обнаружил, что CLLocation класс соответствует Equatable протокол. Какой метод он использует для определения равенства? Точное совпадение лат / лонг? Точное совпадение широты / долготы и высоты? Точное совпадение широ…
13 сен '17 в 22:42
0 ответов

Как сделать рекурсивный уравниваемый протокол для быстрой структуры

Есть ли способ настроить протокол таким образом, чтобы, если мы определили структуру, где все ее свойства соответствуют Equatableтогда это становится автоматически Equatable без необходимости писать весь шаблонный код, чтобы сравнить все свойства в …
06 окт '16 в 03:46
11 ответов

Swift Equatable по протоколу

Я не думаю, что это можно сделать, но я все равно спрошу. У меня есть протокол: protocol X {} И класс: class Y:X {} В остальной части моего кода я ссылаюсь на все, используя протокол X. В этом коде я хотел бы иметь возможность сделать что-то вроде: …
09 фев '17 в 06:55
1 ответ

Common Equatable класс на Swift

Мне нужен контейнер для любого Equatable предметы в НЕ Generic класс (например, начальные классы пользовательского интерфейса из раскадровки). Мне нужно вот так var items: [Equatable]? но это не работает, Equatable нужен общий. проблема в том, что н…
18 сен '17 в 21:36
0 ответов

swift protocol Equatable: не рекомендуется раскрывать не имеющие значения аспекты Equatable типов, отличных от идентичности классов

В настоящее время я изучаю быстрый API по протоколу Equatableи встретили следующую фразу Раскрытие не значимых аспектов Equatable типов, отличных от идентичности классов, не рекомендуется Может ли кто-нибудь объяснить мне, что на самом деле означает?
20 мар '17 в 02:50
2 ответа

Переопределенная функция == для типа Equatable, не вызываемого для пользовательского класса, который подклассов NSCoding и NSObject

FooBar класс ниже должен переопределить == функция Equatable тип. Тем не менее, призывая contains на массиве FooBar объекты не вызывают точку останова внутри кастома == функция для вызова. Возможно ли другое == функция переопределяет эту пользовател…
07 май '16 в 07:34
3 ответа

RealmObject Equatable избыточное сообщение

У нас есть простой класс Person который присущ из миров Object, Теперь мы хотим, чтобы этот подкласс соответствовал Equatable протокол. Очень простой код выглядит следующим образом. class Person: Object, Equatable { dynamic var localID = "0" dynamic…
10 май '16 в 06:48
1 ответ

Использование equals на двух объектах протокола

В идеале сервер должен был бы реализовать протокол Equatable, но я столкнулся с проблемами. Вот мой код protocol Server { var ipAddress: String { get } // simplified for this question } func ==<T:Server>(lhs: T, rhs: T) -> Bool { return lhs…
2 ответа

Двоичный оператор '==' нельзя применить к двум операндам Equatable... что?

Вы можете видеть на изображении ниже, что я пытался расширить Collection протокол, чтобы включить метод под названием removingDuplicates, который должен делать именно то, что говорит. Ошибка, которую отображает компилятор, кажется, прямо противоречи…
31 мар '18 в 01:09
2 ответа

Почему компилятор swift ведет себя иначе с оператором равенства с / без протокола Equatable

У меня есть очень простой класс на игровой площадке в Swift 4.0, который переопределяет оператор ==. Я не понимаю, почему компилятор Swift не ведет себя так же, когда класс наследует / не наследует протокол Equatable. Здесь класс при наследовании Eq…
2 ответа

Быстро обойти, чтобы `AnyObject.Type` соответствовал`Equatable`?

Я хотел бы сделать AnyClass (AKA AnyObject.Type) соответствовать Equatable так что когда у меня есть массив с AnyClass элементы (Array<AnyClass>), Я могу позвонить remove(Element:), но это требует Element соответствовать Equatable,
16 май '17 в 16:10
0 ответов

Swift: '==' нельзя применять между двумя операндами

Я использую Swift 1.2, и мне трудно понять, почему это расширение не компилируется. Я, должно быть, что-то упустил - T - Equatable, и поэтому я подумал, что я смогу сравнить через оператор '=='? extension Array { func indexOf<T:Equatable>(elem…
01 авг '15 в 19:17
1 ответ

Проверка содержимого массива на значения, определенные как Any, но гарантированно одного типа.

Основываясь на этом моем вопросе (и принятом ответе), я хочу проверить наличие значения в массиве. Значение хранится в переменной, определенной как тип Anyи массив определяется как [Any], Фактические типы значения, хранящегося в переменной и элемент…
08 дек '15 в 10:19
1 ответ

Разница между использованием ObjectIdentifier() и оператора ===

Допустим, я реализую корневой класс в Swift, который я объявляю, принимает Equatable протокол (я хочу иметь возможность сказать, содержит ли массив моего типа данный экземпляр или нет). Какая разница - если есть, в данном конкретном случае - между р…
20 сен '16 в 06:21
13 ответов

Как я могу сравнить два CLLocationCoordinate2D? (IPhone/ IPad)

Мне нужен способ сравнения двух CLLocationCoordinate2DОднако, когда я пытался использовать == это не сработает. Пожалуйста, может кто-нибудь помочь мне с лучшим способом их сравнения?