Dev Study
Go コース

55. 型パラメータ — [T any] でジェネリックにする

Go 1.18 から、関数や型に型パラメータを持たせるジェネリクスが導入されました。関数名の後ろに角かっこで型パラメータを書きます。func Print[T any](v T) の T が型パラメータで、any は「どんな型でもよい」を表す制約です(any は interface{} の別名です)。

ジェネリクスがない頃は、型ごとに同じ処理を書き分けるか interface{} と型アサーションで実行時に判定する必要がありました。型パラメータを使えば、1つの定義でさまざまな型に対応しつつ、コンパイル時の型チェックも効きます。

下の例は任意の型のスライスの最初の要素を返す First を、int と string の両方で呼び出します。呼び出し時に型は推論されるので、明示しなくても動きます。

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

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