ジェネリックは Go 1.18 で導入され、関数に次のような特定の効果があります: ジェネリック関数: 特定のバージョンを作成せずに、さまざまな型で実行できます。型推論: コンパイラは、型パラメーターの型を自動的に推論できます。パフォーマンスの向上: 型変換を排除することでパフォーマンスが向上します。インターフェイスの置換: 単純なシナリオでは、汎用関数でインターフェイスを置換できます。実際のケース: 汎用関数を使用してリスト内の最大値を計算できます。これは柔軟かつ効率的です。
Go の関数に対するジェネリクスの具体的な影響
ジェネリクスは、Go 1.18 で導入された重要な機能です。さまざまなタイプで実行されるコードを作成します。関数のコンテキストでは、ジェネリックは次のような特定の効果をもたらします:
// 计算列表中的最大值 func Max[T comparable](list []T) T { max := list[0] for _, v := range list { if v > max { max = v } } return max }
nums := []int{1, 2, 3, 4, 5} result := Max(nums)
// 使用泛型之前 nums := []int{1, 2, 3, 4, 5} max := MaxInt(nums) // 使用泛型之后 nums := []int{1, 2, 3, 4, 5} max := Max(nums)
// 使用接口之前 type Comparable interface { CompareTo(other Comparable) int } // 使用泛型之后 func Max[T comparable](list []T) T { max := list[0] for _, v := range list { if v > max { max = v } } return max }
実際のケース:
リスト内の最大値を計算する必要がある関数を考えてみましょう。ジェネリックスを使用する前は、さまざまな型に対して複数の特定のバージョンを作成する必要がありました:
func MaxInt(list []int) int func MaxFloat64(list []float64) float64 func MaxString(list []string) string
しかし、ジェネリックスを使用すると、共通の Max
関数のみが必要になります:
func Max[T comparable](list []T) T
これにより、柔軟かつ効率的なコードを作成できます。
以上がGolang ジェネリックが関数に与える具体的な影響は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。