golang関数の不定パラメータ

PHPz
リリース: 2023-05-14 20:29:35
オリジナル
344 人が閲覧しました

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!