ホームページ >バックエンド開発 >Golang >golang関数の不定パラメータ

golang関数の不定パラメータ

王林
王林オリジナル
2023-05-13 11:14:08606ブラウズ

開発プロセス中、無限の数のパラメーターを渡す必要がある状況によく遭遇します。たとえば、2 つ以上の数値の合計を計算したり、文字列を出力したりします。このとき、Go言語関数の不定パラメータの特性を利用して問題を解決することができます。

Go 言語では、... の形式を使用して関数の変数パラメーターを表します。変数パラメータのタイプは同じでも異なっていてもかまいません。不定パラメータを使用する場合、関数は任意の数のパラメータを受け取ることができます。パラメータは空のセットであっても、複数の要素を含むセットであっても構いません。

  1. 不定パラメータ関数の基本構文

以下は、... を使用して不定パラメータを表し、パラメータ配列を走査する関数を定義する簡単な例です。そして、それを出力します:

func Sum(nums ...int) {
    fmt.Print(nums, " ")
    total := 0
    for _, num := range nums {
        total += num
    }
    fmt.Println(total)
}

上記の関数の機能は、一連の整数の合計を計算することです。次に、この関数を呼び出します:

Sum(1, 2, 3, 4)
Sum(1, 2, 3)

実行結果は次のとおりです:

[1 2 3 4] 10
[1 2 3] 6

Sum 関数を一度に 2 回呼び出し、最初の回で 4 つのパラメーターを渡していることがわかります。 、および 3 つのパラメーターが渡され、対応する合計が正常に計算されました。

  1. 不定パラメータ関数にスライスを使用する

スライスを使用して不定パラメータ関数を処理できます。スライスで可変パラメータを使用する場合、最初にすべてのパラメータをスライスにロードし、その後、そのスライスを後続の操作に使用できます。

次の例では、最初に make() メソッドを使用してすべてのパラメータを含むスライスを初期化し、次にスライスを走査して合計を計算します。

func Sum(nums ...int) {
    total := 0
    for _, num := range nums {
        total += num
    }
    fmt.Println(total)
}

Sum() 関数を呼び出します。繰り返しますが、渡されるパラメーターは前と同じです:

nums := []int{1, 2, 3, 4}
Sum(nums...)

この関数の実行結果は前と同じで、出力は次のとおりです:

10
  1. 通常のパラメーターと組み合わせて使用​​されます
#Varies パラメトリック関数は、通常のパラメーターと組み合わせると非常に便利です。たとえば、出力する情報を表す文字列パラメータを指定した可変引数関数を使用できます。例:

func PrintStrings(separator string, strs ...string) {
    fmt.Println(strings.Join(strs, separator))
}

この関数の機能は、指定された区切り文字を介していくつかの文字列を接続し、それらを出力することです。まずこの関数を呼び出し、接続する 3 つの文字列と接続記号を渡します。

PrintStrings(", ", "a", "b", "c")

実行結果は次のとおりです。

a, b, c

    可変パラメータ関数の使用の詳細
不定パラメータ関数を使用する場合、いくつかの詳細に注意する必要があります。注意すべき詳細は次のとおりです。

    不定パラメータは関数の最後のパラメータである必要があります。
  • 可変パラメータ関数と通常関数の優先順位に注意する必要があります。
  • 不定のパラメータを関数のパラメータとして渡すことができ、これらのパラメータの値はポインタ操作を使用して変更できます。
    概要
可変パラメータ関数を使用すると、動的な数のパラメータを簡単に処理できるため、コードの作成がより簡単かつ柔軟になります。可変パラメータ関数を呼び出すときは、所定の方法でパラメータを渡す必要があることに注意してください。

この記事を通じて、Go 言語の関数変数パラメーターの構文と、変数パラメーター関数を使用して動的な数のパラメーターを処理する方法を学びました。開発では、可変パラメーター関数を合理的に使用すると、コードの品質と効率が大幅に向上します。

以上がgolang関数の不定パラメータの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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