いいえ、Go の汎用関数はユーザー定義型、ポインター型、スライス型、マッピング型、およびチャネル型のみをサポートします。
Golang のジェネリック関数はすべての型をサポートしていますか?
#概要
汎用関数を使用すると、さまざまな種類のデータを処理する関数を作成できます。ジェネリックは Go 1.18 で導入されましたが、すべての型で機能するわけではありません。制限事項
Go のジェネリック関数には、次のようないくつかの制限があります。サポートされる型
Go のジェネリック関数は次の型をサポートします。実用的なケース
次は、汎用関数の使用方法を示す例です。func max[T constraints.Ordered](a, b T) T { if a > b { return a } return b } func main() { maxInt := max(5, 10) // int 类型 maxFloat := max(3.14, 6.28) // float64 类型 }
max 関数は、
constraints.Ordered インターフェイスを実装する 2 つのジェネリック型パラメーターを受け取り、2 つのうち大きい方を返します。このインターフェイスは、
および > 比較演算子を提供します。
結論
Go のジェネリック関数は、さまざまな種類のデータを処理する関数を作成するのに非常に役立ちます。ただし、基本型やメソッド セットのない型は使用できないなど、いくつかの制限があります。以上がGolang の汎用関数はすべての型をサポートしていますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。