第2部:プロトコル
Equatable(同等視)
Equatable プロトコルは、同じ型の2つの値が、演算子 == または!= を使用して同等であるとみなされるかどうかを決定できます。
Swift 標準ライブラリは、!= 演算子の実装を提供しています。その結果、Equatable プロトコルに準拠している型は == 演算子だけを実装する事が必要とされます。
等しい事を決定
==
同じ型の2つの値が等しいかどうかを決定します。
宣言
func ==(lhs: Self, rhs: Self) -> Bool
議論
プロトコルに準拠するためには、グローバルな範囲で == の実装を提供する必要があります。提供された値が等しい場合は true、そうでない場合は false を返す必要があります。
準拠する型の2つの値に対し、等しいということが何を意味するのかを判断するのはあなた次第です。
- 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
前:数値型
次:Comparable(比較可能)