公開中のアプリ

[Swift入門#30]ジェネリクスを使ってみよう

今回はジェネリクス(generics)について書きたいと思います。
構造体(generics)の説明から実際の使用例までサンプルコードをもとにわかりやすく説明していきたいと思います。

ジェネリクスとは

型に左右されずに、関数やクラスを定義する事ができる仕組みです。
サンプルを見ればすぐわかると思うのでとりあえずコードを見てみましょう!

ジェネリクスの書き方

まず例を見てみよう

下記コードはprint()するだけの簡単な関数です。(関数にするまでもありませんが)
引数でInt型を指定して出力結果は1250となっています。

func all(x: Int) {
    print(x)
}
all(x: 1250)//結果 1250

では今回のポイントです!
この関数をInt型ではなくString型でも使いたい場合、String型にして同じ関数を書けば良いのですが、それもちょっと面倒ですよね??
ここで登場するのがジェネリクスです!
下記コードの見てみましょう!

func all<T>(x: T) {
    print(x)
}
all(x: 1250)//結果 1250
all(x: "mayugezio")//結果 mayugezio

まずは4行目、5行目の結果から見て欲しいです。
同じ「関数all」を使っているのに引数で「Int型」と「String型」違う型を指定できているのがわかると思います。
ジェネリクスを使うとこのような事が可能になります。

書き方

書き方は簡単です。

func all<T>(x: T) {
    print(x)
}

関数名の隣に、<T>と書いて引数の型にTを指定してあげればOKです!
このTですが、Tじゃなくても大丈夫ですが慣例的にTが使われてるみたいです。

まとめ

今回は型を汎用化できるジェネリクスについて書きました。
すごく便利ですね!
コードを書いていて、面倒だなって思った時は簡単に書ける方法が用意されていたりするのでちょっと調べたりしてみると良いと思います!

“[Swift入門#30]ジェネリクスを使ってみよう” への2件のフィードバック

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

アプリ