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