ジェネリック型のデフォルト値
Go では、どの型に対しても nil を返すことは許可されていません。 T が任意の型を表すジェネリック型の場合でも、nil は有効なオプションではありません。構造体や整数などの型には nil 表現がありません。
代わりに、T に使用される特定の型引数のゼロ値を返すことができます。ゼロ値は型によって異なります。
ゼロ値を返すには、型 T の変数を宣言して戻り値を返します。それ:
func getZero[T any]() T { var result T return result }
たとえば、getZero 関数を使用します:
i := getZero[int]() fmt.Printf("%T %v\n", i, i) // Output: int 0 s := getZero[string]() fmt.Printf("%T %q\n", s, s) // Output: string "" p := getZero[image.Point]() fmt.Printf("%T %v\n", p, p) // Output: image.Point (0,0) f := getZero[*float64]() fmt.Printf("%T %v\n", f, f) // Output: *float64 <nil>
以上がGo でジェネリック型のデフォルト値を処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。