Dev Study
Go コース

60. ジェネリクスを使うべきか — 判断の指針

Go 公式は「便利だからといって何でもジェネリックにしない」よう勧めています。目安は、複数の型に対してまったく同じロジックを書いていて、その違いが要素の型だけのときです。スライス・マップ・チャネルを操作する汎用関数や、汎用コンテナ(スタック・集合など)が典型的な適所です。

逆に、型ごとに振る舞いが変わるなら、ジェネリクスよりインターフェース(メソッドによる多態)の方が素直です。たとえば「面積を計算する」は型ごとに計算式が違うので、Area() メソッドを持つインターフェースで表すべきです。また、まだ1つの型でしか使っていないなら、無理に一般化しないのが賢明です。

下の例は対照です。最大値を返すロジックは型が違うだけなのでジェネリクスが向き、面積の計算は型ごとに式が違うのでインターフェースが向きます。

▶ サンプルコードを実行してみよう(自由に書き換えてOK)

Go
公式ドキュメントで詳しく ↗