Сопоставимый
Equatable протокол позволяет определить, считаются ли два значения того же типа равным использованием == и != операторы.
Библиотека стандарта Swift обеспечивает реализацию для != оператор. В результате типы, соответствующие Equatable протокол требуется, чтобы реализовывать == оператор только.
Определение равенства
==
Определяет равенство двух значений того же типа.
Объявление
func ==(lhs: Self, rhs: Self) -> Bool
Обсуждение
Для приспосабливания протоколу необходимо обеспечить реализацию для == в глобальной области видимости. Необходимо возвратиться true если предоставленные значения равны, иначе false.
Вам решать для определения то, что равенство означает для двух значений соответствующего типа:
struct MyStruct: Equatable {var name = "Untitled"}func ==(lhs: MyStruct, rhs: MyStruct) -> Bool {return lhs.name == rhs.name}let value1 = MyStruct()var value2 = MyStruct()let firstCheck = value1 == value2// firstCheck is truevalue2.name = "A New Name"let secondCheck = value1 == value2// secondCheck is false
