Comparable(比較可能)
Comparable プロトコルにより、<、>、<=、 そして >= の関係演算子をを使用して、同じ型の値を比較することができます。
Swift 標準ライブラリは、>、<=、>=、 および != 演算子の実装を提供します。その結果、 Comparable プロトコルに準拠する型は、< と == 演算子だけを実装する必要があります。(== 演算子は Equatable プロトコルから Comparable を継承するための要件です。)
値を比較する
<
宣言
func <(lhs: Self, rhs: Self) -> Bool
議論
プロトコルに準拠するためには、グローバルな範囲での < の実装を提供する必要があります。lhs の値が rhs の値未満である場合は true、そうでない場合は false を返す必要があります。
「未満である」が準拠する型の2つの値に対して何を意味するかを判断するのはあなた次第です。
- struct MyStruct: Comparable {
-         var name = "Untitled"
- }
- func <(lhs: MyStruct, rhs: MyStruct) -> Bool {
-         return lhs.name < rhs.name
- }
- // Implementation of == required by Equatable
- func ==(lhs: MyStruct, rhs: MyStruct) -> Bool {
-         return lhs.name == rhs.name
- }
- let value1 = MyStruct()
- var value2 = MyStruct()
- let firstCheck = value1 < value2
- // firstCheck is false
- value2.name = "A New Name"
- let secondCheck = value2 < value1
- // secondCheck is true
前:Equatable(同等視)
次:Printable(印刷可能)