Go 1.18 では、汎用関数が導入され、型パラメーター化がサポートされ、コードの再利用性が強化されています。ジェネリック関数の構文は、 func 関数名 [型パラメータ] (入力パラメータ 型パラメータ) 型パラメータであり、型パラメータ化された型を入力および戻り値の型として使用できます。たとえば、Min[T 数値] (a, b T) T の場合、T は数値型である必要があり、a と b は T 型の入力パラメーターであり、小さい方の数値が返されます。ジェネリック関数によりコードの再利用性が大幅に向上し、さまざまなタイプに適した一般的なコードを作成できるようになります。
Go でのジェネリクスの関数アプリケーション
Go 1.18 以降で導入されたジェネリクスにより、関数は Type パラメータ化された型を受け入れ、返すことができます。これにより、コードの再利用性と柔軟性が大幅に向上します。
構文
汎用関数の構文は次のとおりです:
func myFunc[T any](input T) T { // ... }
その中には次のとおりです:
myFunc
は関数名です。 T any
は型パラメータです。カスタム タイプを含め、任意のタイプにすることができます。 input
は、パラメータ化された型を持つ入力パラメータです。 T
は、型パラメーター化された型の戻り値の型です。 実際的なケース
2 つの数値の最小値を計算する関数を作成するとします。ジェネリック関数を使用すると、特定の型シグネチャを持つ複数の関数を作成することなく、これら 2 つの数値を任意の数値型で表すことができます。
次の汎用関数を作成できます:
func Min[T number](a, b T) T { if a < b { return a } return b }
ここで:
Tnumber
は、型パラメータ T が数値でなければならないことを意味します。型 (たとえば、int、float64)。 a
および b
は、タイプ T の入力パラメーターです。 if-else
ステートメントは 2 つの数値を比較し、小さい方の数値を返します。 この関数を使用して、さまざまなタイプの数値の最小値を計算できます:
var a int8 = 10 var b int16 = 20 min := Min(a, b) // 类型推断为 int16 fmt.Println(min) // 输出:10
結論
Go ジェネリックスは許可することで受け入れます。関数と戻り値の型指定により、コードの再利用性と柔軟性が大幅に向上します。ジェネリック関数を使用すると、さまざまな型で動作するジェネリック コードを作成できます。
以上がGolang汎用関数アプリケーションの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。