第2部:プロトコル


Equatable(同等視)


Equatable プロトコルは、同じ型の2つの値が、演算子 == または!= を使用して同等であるとみなされるかどうかを決定できます。


Swift 標準ライブラリは、!= 演算子の実装を提供しています。その結果、Equatable プロトコルに準拠している型は == 演算子だけを実装する事が必要とされます。


等しい事を決定


==


同じ型の2つの値が等しいかどうかを決定します。


宣言


func ==(lhs: Self, rhs: Self) -> Bool



議論


プロトコルに準拠するためには、グローバルな範囲で == の実装を提供する必要があります。提供された値が等しい場合は true、そうでない場合は false を返す必要があります。


準拠する型の2つの値に対し、等しいということが何を意味するのかを判断するのはあなた次第です。


  1. struct MyStruct: Equatable {
  2.         var name = "Untitled"
  3. }
  4. func ==(lhs: MyStruct, rhs: MyStruct) -> Bool {
  5.         return lhs.name == rhs.name
  6. }
  7. let value1 = MyStruct()
  8. var value2 = MyStruct()
  9. let firstCheck = value1 == value2
  10. // firstCheck is true
  11. value2.name = "A New Name"
  12. let secondCheck = value1 == value2
  13. // secondCheck is false





前:数値型


次:Comparable(比較可能)