Go のジェネリック関数
Go では、ジェネリック関数の概念は、空のインターフェイスの使用を通じて実装されます。空のインターフェイスは、追加のメソッド実装を必要としないため、あらゆるタイプの値を保持できます。これは、これがジェネリック関数の実装に対する Go のアプローチとして機能するのか、それともより適切な代替手段が存在するのかという疑問につながります。
Go 1.18 では、ジェネリック関数を定義するためのより現代的で明示的な方法が導入されました。型パラメーターを利用して、関数が操作できる型を指定します。たとえば、次のジェネリック関数について考えてみましょう。Print:
package main import ( "fmt" ) // T can be any type func Print[T any](s []T) { for _, v := range s { fmt.Print(v) } } func main() { // Passing list of string works Print([]string{"Hello, ", "world\n"}) // You can pass a list of int to the same function as well Print([]int{1, 2}) }
Output:
Hello, world 12
このメソッドは、ジェネリック関数のより明確で明示的な宣言を提供し、理解と保守が容易になります。コードベース。
以上がGo は空のインターフェイスまたはジェネリック関数の型パラメーターを使用しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。