Go ジェネリックは、次のようなパラメーター化された型を通じてコードを再利用可能にする機能です。 タイプセーフ コレクション: さまざまな型の要素を格納するコレクションを作成できます。ユニバーサル比較関数: 同等のインターフェイスを実装する任意の型を比較できます。
#Go Generics: 関数の再利用性を拡張するための強力なツール
#はじめに Go 1.18 で導入されたジェネリックは、開発者がさまざまな型に対して関数を繰り返し記述することなく、再利用可能なコードを作成できる強力な機能です。これにより、明確で保守しやすいコードを簡単に作成できるようになります。
構文Go ジェネリックスでは、山かっこ を使用して型パラメーターを宣言します。例:
func Max[T any](a, b T) T { if a > b { return a } return b }
この場合、
T は型パラメーターであり、任意の型を使用できます。 Max
関数は、a
と b
の大きい方を返します。
1. タイプセーフなコレクション
ユーザーは、タイプセーフなコレクションを作成できます。要素の種類。次の例では、型付きスライスを作成します。
type StringSlice []string func (s StringSlice) Add(item string) { s = append(s, item) }
これで、型変換エラーを気にせずに、このスライスを使用して文字列を保存できるようになります。
func main() { var names StringSlice names.Add("Alice") names.Add("Bob") }
ジェネリクスを使用して、任意の型の 2 つの要素を比較できる一般的な比較関数を作成できます。
func Equal[T comparable](a, b T) bool { return a == b }
この関数は、任意の実装を比較するために使用できます。
比較可能な インターフェイスのタイプ。例: Go ジェネリックは、開発者が再利用可能で保守しやすいコードを作成できる強力な機能です。ジェネリックは型をパラメーター化することで、関数と型をより一般化し、重複したコードを排除するのに役立ちます。 以上がGolang ジェネリックは関数の再利用性をどのように拡張しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。fmt.Println(Equal(1, 2))
fmt.Println(Equal("foo", "bar"))