Comparable(比較可能)


Comparable プロトコルにより、<>、<=、 そして >= の関係演算子をを使用して、同じ型の値を比較することができます。


Swift 標準ライブラリは、>、<=、>=、 および != 演算子の実装を提供します。その結果、 Comparable プロトコルに準拠する型は、<== 演算子だけを実装する必要があります。(== 演算子は Equatable プロトコルから Comparable を継承するための要件です。)


値を比較する


<


宣言


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



議論


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


「未満である」が準拠する型の2つの値に対して何を意味するかを判断するのはあなた次第です。


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





前:Equatable(同等視)


次:Printable(印刷可能)