Golang 関数では、不定のパラメーターを使用してパラメーターを渡すことができます。不定パラメータとは、パラメータの数が不確実な場合に、特別なタイプを使用してすべてのパラメータを受け取ることを指します。関数では、 ...type を使用して不定のパラメータを定義できます。type は、int、string などの任意のデータ型です。
以下は、不定パラメータを使用して一連の数値の合計を計算する基本的な例です。
func sum(nums ...int) int { total := 0 for _, num := range nums { total += num } return total } func main() { fmt.Println(sum(1, 2, 3, 4, 5)) // 输出 15 }
上の例では、sum 関数は int 型の不定パラメータ nums を受け取ります。 、for ループを使用してすべてのパラメータを反復処理し、その値を蓄積します。 main関数ではsum関数を呼び出す際にint型のパラメータを5つ渡し、それらの合計を出力しています。
不定パラメータを使用する利点は、事前にパラメータの数を宣言しなくても、任意の数のパラメータを簡単に渡すことができることです。これは、処理ログ、ファイル パス、URL など、動的な数のパラメーターを処理する必要がある関数に最適です。
同じタイプの無限の数のパラメータを受け取ることに加えて、無限のパラメータは異なるタイプのパラメータも受け取ることができます。以下は、不定のパラメータを使用して、任意の数の値とその型を出力する例です。
func display(values ...interface{}) { for _, value := range values { fmt.Printf("%v (%T) ", value, value) } } func main() { display(1, "hello", true) }
上の例では、表示関数は、interface{ 型の不定数のパラメータ値を受け取ります。 for を使用してすべてのパラメータをループし、Printf 関数を使用して値と型を出力します。 main関数では、display関数を呼び出す際に、int型の値1、string型の値「hello」、bool型の値trueを渡し、それらの値と型を出力します。
不定パラメータを使用する場合、それは関数パラメータ リストの最後のパラメータである必要があることに注意してください。関数が呼び出されるとき、引数は決定的な順序で渡される必要があるため、他の引数がすでに決定的であるように、可変引数は引数リストの最後になければなりません。
つまり、不定パラメータの使用は、動的な数のパラメータを処理する非常に便利な方法であり、柔軟な関数をより簡単に作成できるようになります。 Golang では、不定パラメータは非常に簡単に使用できるため、関数を定義するときに ...type を使用するだけで済みます。
以上がgolang関数の不定パラメータの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。