プロトコル

Swift

Identifiableプロトコルって?

SwiftUIでも開発をして行くと、Identifiableを使う場面がわりとよくあります。Identifiableというのは、一意に特定可能とかそんな意味です。独自に定義したデータの配列をまとめてビューとして表示したい場合など、Ident...
Swift

Hashableプロトコルとは?

辞書型のデータを使ったり、何かのデータを探索するような時に、Hashableプロトコルが出てきます。Hasableプロトコルに準拠した型は、値からハッシュ値を計算することができます。ちなみに「ハッシュ」というのは、ハッシュドポテトなどのハッ...
Swift

Collectionプロトコルの使い方

Collectionプロトコルは、Swiftの基本を構成するものの一つです。具体的には配列もそうで、Array型はCollectionプロトコルに準拠します。配列から想像がつくかもしれませんが、Collectionプロトコルで共通のメソッド...
Swift

Comparableプロトコルの使い方

Swiftに標準で組み込まれているComparableプロトコルの使い方です。Comparableというプロトコルは、その型のインスタンスが比較可能かどうかを意味します。そのため、static func < が実装必須で ...
Swift

Equatableプロトコルの使い方

Swiftには標準で組み込まれていEquatableプロトコルの使い方です。Equatableもとても基本的な部分を扱うプロトコルで、==や!=という演算子をその型のインスタンスに対して使え、等しいかどうかを調べられるよう ...
Swift

プロトコルのデフォルト実装

プロトコルエクステンションで実装を追加すると、採用した型でのその実装は任意になります。そこで実装が再定義されなければ、プロトコルエクステンションの実装がデフォルトとして使われます。これも見てみるのが早いと思います。protocol Bicy...
Swift

プロトコルの拡張(エクステンション)

すでに存在しているプロトコルに対して、プロパティやメソッドの実装を追加できます。これを拡張(エクステンション)と呼びます。やり方は、extensionキーワードを使います。protocol Bicycle { var wheelSize: ...
Swift

【Swift/SwiftUI】プロトコルの使われ方

プロトコルを使うことで、ある存在が持っているべき要素を規定することができます。SwiftUIでもプロトコルは頻繁に使われていて、例えば図形の描画です。少し四角形を想像してみてください。四角形に必要なものは色々あると思いますが、「辺」は必要な...
Swift

プロトコルの継承

プロトコルは継承をすることができます。継承元のプロトコルから、プロパティとメソッドを引き継ぎます。protocol プロトコル: 継承元のプロトコル {    // 定義}という感じで、クラスの継承と同じ感じの書き方です。早速、例を作ってみ...
Swift

複数のプロトコルを採用する

一つの構造体やクラスに、複数のプロトコルを準拠させることもできます。プロトコル同士をカンマで区切ります。構造体ならこんな感じです。struct 構造体名: プロトコル1, プロトコル2, プロトコル3,,, { // 構造体の定義}独自のプ...