Сопоставимый
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 true
value2.name = "A New Name"
let secondCheck = value1 == value2
// secondCheck is false