広告スペース(バナー)
🐹Go レッスン
基本文法の基礎8
データ構造とオブジェクト指向7
構文の基本を深める9
関数とデータ構造の応用9
アルゴリズムとテストの基礎8
文字列・数値操作の応用8
実務で役立つ機能8
アルゴリズム練習問題10
レッスン 51 / 68

ジェネリクスで汎用的な関数を書こう

このレッスンでは、Goのジェネリクスを使って汎用的な関数を書く方法を学び、複数の型に対応できる柔軟な関数を作れるようになることを目標にします。「Go言語 ジェネリクス 使い方」で調べている方向けです。

Go 1.18以降ではジェネリクスが使えます。型パラメータ[T ...]を使うと、型を1つに決めずに「どんな型でも使える」関数を書けます。

サンプルコードでは、Orderedという型制約インターフェースを定義し、larger[T Ordered](a, b T) Tという関数で数値のlarger(3, 7)と文字列のlarger("apple", "banana")のどちらも同じ関数で比較できています。

初心者がよくつまずくのが、型制約の意味です。型制約というインターフェースを自分で定義することで、受け入れる型の範囲を細かくコントロールできますが、制約なしのTだけでは比較演算子が使えるとは限りません。

実際の開発現場では、比較的新しい機能ですが、標準ライブラリのslicesパッケージなどでも活用されており、今後さらに使用頻度が高まっていく仕組みです。

📖 お手本コード
✍️ あなたのコード
コードを書いたら「実行する」を押してください

🧪 このサイトではGoを直接コンパイル・実行できないため、お手本コードと同じ内容を入力できたかをその場で判定します(採点はブラウザ内だけで行われ、どこにも送信されません)。

🎯
ここまでできればゴール達成!
型を問わず使い回せる、便利な比較関数が作れるようになります。
広告スペース(バナー)
広告スペース(記事内)