第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(比較可能)




目次
Xcode 9 の新機能

インターフェースビルダー ヘルプ
ストーリーボード

NSObject(class)

  • 第一部:型
  • String
  • 文字列の作成
  • init()
  • 宣言
    議論
  • init(count:repeatedValue:)
  • 宣言
    議論
  • 文字列を照会
  • isEmpty
  • 宣言
    議論
  • hasPrefix(_:)
  • 宣言
    議論
  • hasSuffix(_:)
  • 宣言
    議論
  • 文字列の変換
  • toInt()
  • 宣言
    議論
  • 演算子
  • +
  • 宣言
    議論
  • +=
  • 宣言
    議論
  • ==
  • 宣言
    議論
  • <
  • 宣言
    議論
  • Array<T>
  • 配列の作成
  • init()
  • 宣言
    議論
  • init(count:repeatedValue:)
  • 宣言
    議論
  • 配列要素へのアクセス
  • subscript(_: Range<Int>)
  • 宣言
    議論
  • 要素の追加と削除
  • append(_:)
  • 宣言
    議論
  • insert(_:atIndex:)
  • 宣言
    議論
  • removeAtIndex(_:)
  • 宣言
    議論
  • removeLast()
  • 宣言
    議論
  • removeAll(keepCapacity:)
  • 宣言
    議論
  • reserveCapacity(_:)
  • 宣言
    議論
  • 配列を照会
  • count
  • 宣言
    議論
  • isEmpty
  • 宣言
    議論
  • capacity
  • 宣言
    議論
  • アルゴリズム
  • sort(_:)
  • 宣言
    議論
  • sorted(_:)
  • 宣言
    議論
  • reverse()
  • 宣言
    議論
  • filter(_:)
  • 宣言
    議論
  • map(_:)
  • 宣言
    議論
  • reduce(_:combine:)
  • 宣言
    議論
  • 演算子
  • +=
  • 宣言
    議論
  • Dictionary<Key: Hashable, Value>
  • 辞書の作成
  • init()
  • 宣言
    議論
  • init(minimumCapacity:)
  • 宣言
    議論
  • 辞書の要素にアクセスし変更する
  • subscript(key: Key)
  • 宣言
    議論
  • updateValue(_:forKey:)
  • 宣言
    議論
  • removeValueForKey(_:)
  • 宣言
    議論
  • removeAll(keepCapacity:)
  • 宣言
    議論
  • 辞書を照会する
  • count
  • 宣言
    議論
  • keys
  • 宣言
    議論
  • values
  • 宣言
    議論
  • 演算子
  • ==
  • 宣言
    議論
  • !=
  • 宣言
    議論
  • 数値型
  • 整数型
    浮動小数点型
    ブール型
  • 第2部:プロトコル
  • Equatable(同等視)
  • 等しい事を決定
  • ==
  • 宣言
    議論
  • Comparable(比較可能)
  • 値を比較する
  • <
  • 宣言
    議論
  • Printable(印刷可能)
  • 値の記述
  • description
  • 宣言
    議論
  • 第3部:自由関数
  • 印刷
  • 主要関数
  • print(_:)
  • 宣言
    議論
  • println(_:)
  • 宣言
    議論
  • print()
  • 宣言
    議論
  • アルゴリズム
  • 並べ替え
  • sort(_:)
  • 宣言
    議論
  • sort(_:_:)
  • 宣言
    議論
  • sorted(_:)
  • 宣言
    議論
  • sorted(_:_:)
  • 宣言
    議論
  • 検索
  • find(_:_:)
  • 宣言
    議論
    マニュアル変更履歴