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

golang関数の不定パラメータ

王林
リリース: 2023-05-13 11:14:08
オリジナル
603 人が閲覧しました

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

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

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

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

1

2

3

4

5

6

7

8

func Sum(nums ...int) {

    fmt.Print(nums, " ")

    total := 0

    for _, num := range nums {

        total += num

    }

    fmt.Println(total)

}

ログイン後にコピー

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

1

2

Sum(1, 2, 3, 4)

Sum(1, 2, 3)

ログイン後にコピー

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

1

2

[1 2 3 4] 10

[1 2 3] 6

ログイン後にコピー

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

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

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

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

1

2

3

4

5

6

7

func Sum(nums ...int) {

    total := 0

    for _, num := range nums {

        total += num

    }

    fmt.Println(total)

}

ログイン後にコピー

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

1

2

nums := []int{1, 2, 3, 4}

Sum(nums...)

ログイン後にコピー

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

1

 

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

1

2

3

func PrintStrings(separator string, strs ...string) {

    fmt.Println(strings.Join(strs, separator))

}

ログイン後にコピー

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

1

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

ログイン後にコピー

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

1

a, b, c

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

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

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

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート