ホームページ >バックエンド開発 >Golang >Go は空のインターフェイスまたはジェネリック関数の型パラメーターを使用しますか?

Go は空のインターフェイスまたはジェネリック関数の型パラメーターを使用しますか?

Linda Hamilton
Linda Hamiltonオリジナル
2025-01-01 01:21:10488ブラウズ

Does Go Use Empty Interfaces or Type Parameters for Generic Functions?

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 サイトの他の関連記事を参照してください。

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