ホームページ >バックエンド開発 >Golang >ジェネリックは Go で真のジェネリック関数をどのように有効にするのでしょうか?

ジェネリックは Go で真のジェネリック関数をどのように有効にするのでしょうか?

DDD
DDDオリジナル
2024-12-18 15:08:13405ブラウズ

How Do Generics Enable True Generic Functions in Go?

Go の汎用関数

Go のインターフェイス型は、実装されたメソッドを必要とせずに任意の型を保持できるため、インターフェイス型がインターフェイスとして機能するかのような印象を与えます。汎用関数の形式。しかし、そうではありません。コンパイル時に型が不明な真のジェネリック関数は、バージョン 1.18 より前の Go ではサポートされていませんでした。

Go 1.18 ではジェネリックが導入され、ジェネリック関数の作成が可能になりました。ジェネリック関数は、func キーワードの後に​​角かっこで囲まれた型パラメータを使用して定義できます。型パラメータは、ジェネリック関数で受け入れられる型を指定します。例:

func Print[T any](s []T) {
    for _, v := range s {
        fmt.Print(v)
    }
}

この例では、T は任意の型を表すことができる型パラメーターです。関数 Print は型 []T のスライスを受け入れ、スライスの要素を出力します。

汎用関数を使用するには、目的の型のスライスを引数として渡すことができます:

// Passing a list of strings
Print([]string{"Hello, ", "world\n"})

// Passing a list of integers
Print([]int{1, 2})

プログラムの出力は次のようになります:

Hello, world
12

汎用関数は、さまざまな型で動作できるコードを記述するための簡潔かつ安全な方法を提供します。型の安全性を犠牲にすることなく。

以上がジェネリックは Go で真のジェネリック関数をどのように有効にするのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。