ホームページ >バックエンド開発 >Golang >Go の `...interface{}` (Variadic Interface) パラメータとは何ですか?

Go の `...interface{}` (Variadic Interface) パラメータとは何ですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-16 21:18:21150ブラウズ

What is the `...interface{}` (Variadic Interface) Parameter in Go?

...interface{} (Variadic Interface) の意味を理解する

以下の Go コード スニペット内:

func DPrintf(format string, a ...interface{}) (n int, err error) {
  if Debug > 0 {
    n, err = fmt.Printf(format, a...)
  }
  return
}

...interface{} パラメータ定義では、この関数の a とは何でしょうか?という疑問が生じます。ここの 3 つのドットは、a が可変引数パラメーターであることを示しており、このパラメーターに任意の数の引数を渡すことができます。

パラメーター a は、本質的に []interface{} 型のスライスです。 DPrintf を呼び出すときは、スライスに格納される複数の引数を渡すことができます。例:

DPrintf("Value: %v", 10)

この呼び出しでは、DPrintf はスライスに格納されている単一の引数 (10) を受け取ります。

...interface{} タイプは、要素がスライスのタイプは任意です。これは、interface{} が Go の最も一般的なインターフェイス タイプであり、どの具象型でも実装できるためです。

可変個引数パラメータを使用する利点:

可変個引数パラメータが提供するものいくつかの利点:

  • 柔軟性: 可変引数パラメーターを使用すると、任意の数の引数を受け入れることができる関数を作成できます。柔軟性が非常に高いです。
  • コードの再利用性: 可変引数パラメーターを使用すると、引数の数に応じて個別の関数を作成することなく、さまざまなシナリオで使用できる汎用関数を作成できます。

使用例:

これは、可変個引数の使用方法の別の例です。パラメータ:

func Min(nums ...int) int {
  if len(nums) == 0 {
    return 0
  }

  min := nums[0]
  for _, num := range nums {
    if num < min {
      min = num
    }
  }
  return min
}

この関数では、nums ...int パラメータを使用して任意の数の整数を渡すことができます。次に、関数はこれらの整数の最小値を見つけます。

以上がGo の `...interface{}` (Variadic Interface) パラメータとは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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