【Swift入門】ジェネリクス(generics)の使い方を分かりやすく解説!ヤマシタ2017/10/232019/4/15SwiftではIntやStringなどの型に左右されずに、柔軟に動作する関数やクラスを定義することができるジェネリクス(generics)という機能が用意されています。・ジェネリックプロトコルの使い方などの応用的な使い方に関しても解説していきます。今回はそんなジェネリクス(generics)の使い方についてわかりやすく解説します!※この記事ではSwift4.0を使用しています。まとめジェネリクス(generics)とはジェネリクス(generics)とは、ユーザーが定義した要件に応じて、指定したタイプで柔軟に動作する再利用可能な関数や型を指定できる機能です。ジェネリクスはSwiftの特徴的な機能の1つで多くの機能でジェネリクスは使用されています。Swiftの配列型やディクショナリ型(辞書)でも型に左右されずに値を格納したり取り出すことが可能です。...処理...}ジェネリクスを使用するには、関数名のあとに<T>を指定します。<T>は型パラメータと呼ばれるもので、この関数ではTという型を使用することを意味しています。<T>を指定すると、関数が呼び出されたときにSwiftのシステムで自動で適切な型に置き換えて処理を実行してくれます。ジェネリクスの型は<T>でなくても構いせんが、慣例として<T>が使われています。ジェネリクスの考え方・使い方ここではジェネリクスの考え方や具体的な使い方について見ていきましょう。以下はInt型の引数を2つ受け取ってInt型の値を返却する関数です。300関数で受け取る型が分かりきっている場合は、このような指定方法でも問題ありません。Float型やDouble型などの異なる引数を渡したい場合、この関数では以下のように小数点を含んだ引数を指定すると、コンパイルエラーになります。num2:200.3)次項ではそんな問題を解決するジェネリクスの基本的な使い方について解説します。ジェネリクスの使い方ジェネリクスを指定すると、1度の定義であらゆる型に対応することができます。前項で型の異なる引数を関数に渡したいとき、通常なら関数のオーバーロードを作成する必要がありますが、ジェネリクスなら以下のように指定することでさまざまな型に対応可能です。num2}しかし、上記のサンプルを実行するとエラーとなります。これは関数内でプラス演算子を使用しているため、ジェネリクス型はさまざまな「型」には対応していますが、+などの演算子については対応していないからです。Numeric」と指定することで、数値型要素を持つ関数であることを宣言する必要があります。300.8このプログラムを実行すると、Int型とDouble型の演算が1つの関数で実行できます。ジェネリクスのクラスを使用するクラス名の型にT型を指定することにより、クラスのインスタンス生成時にあらゆる型を指定することができます。以下にジェネリクスを指定したクラスの記述方法を紹介します。"apple")print(cl2.item)実行結果:100appleこのようにインスタンス生成時にInt型やString型など柔軟に指定できることがわかりますね!しかしジェネリクス型を指定する場合は、指定した型については意識しておかないと後々の処理で型の不整合がおきたりしますので注意しましょう。Protocol)はジェネリクスを使用したプロトコルです。Protocol(プロトコル)はクラスの型や動作を決めておくための設計図のようなものです。Swiftではプロトコルにもジェネリクスを使用することが可能です。以下にプロトコルを定義し、Int型、String型のクラスを定義しています。T」のように任意の型を指定する必要があります。・ジェネリックプロトコルの使い方などについて解説しました。ジェネリクスはSwift特有の機能で、他言語からSwiftを学ぶ場合とっつきにくいイメージもあります。ジェネリクスを使用すれば、型を気にせずにさまざまな処理を行うことができますので非常に便利です。ジェネリクスについて忘れてしまったら、この記事を思い出してくださいね!TweetPocket無料でSEからWebエンジニアへ転職しませんか?侍エンジニア塾では、完全未経験の方から現在SEだけどプログラミングはやっていないという経験者まで、幅広い方々の人生を好転させるプログラミング指導を行ってきました。SEの方とお話していくなかで、システムエンジニアという職業だけどコードが書けない事務作業が多くスキルがないため将来が不安スクールに通うと完全未経験者と同じスタートになるからレベルが合わないという、すでに知識があるSEならではのお悩みがあることに気づきました。弊社では、マンツーマンでレッスンを行いますので、現在お持ちの知識レベルからカリキュラムを作成いたします。こちらの転職コースは無料で受講を始められて転職成功でそのまま卒業できるというとてもお得なコースとなっています。知識のあるSEといっても転職は年齢が若いほど受かりやすいため、まずは無料体験レッスンで今の現状や理想の働き方について一緒に考えていきましょう。無料体験レッスンを予約する書いた人ヤマシタシステムエンジニアとして10年勤務→フリーランスへ。現在は侍ブログ編集部としてこれまでに200記事以上の記事を執筆。大規模システム開発からWebアプリ開発まで経験あり。最近ではPythonの機械学習に挑戦中。