ホームページ  >  記事  >  バックエンド開発  >  Goで複数の戻り値を引数としてパラメータ数が異なる関数に渡すことはできますか?

Goで複数の戻り値を引数としてパラメータ数が異なる関数に渡すことはできますか?

Susan Sarandon
Susan Sarandonオリジナル
2024-10-31 11:20:29563ブラウズ

Can Multiple Return Values Be Passed as Arguments to Functions with Different Parameter Counts in Go?

Go における関数の引数としての複数の戻り値

Go では、関数は複数の値を返すことができ、コードの構造化と再利用に役立ちます。 。ただし、これらの戻り値を引数として別の関数に渡す場合、特定の制限が適用されます。

複数の戻り値に関する制限

関数 returnIntAndString( ) 2 つの値 (整数と文字列) を返す場合、次のように、戻り値を使用して別の関数 doSomething(int, string) を問題なく呼び出すことができます。

<code class="go">doSomething(returnIntAndString())</code>

ただし、追加の関数を追加すると、 doSomething() への引数 (メッセージ文字列など) を次のように呼び出すと Go がエラーを出します:

<code class="go">doSomething("message", returnIntAndString())</code>

コンパイル エラー:

  • main.go:45:単一値コンテキストでの複数値 returnIntAndString()
  • main.go:45: doSomething() の呼び出しに十分な引数がありません

回避策

Go の仕様では、追加のパラメーターを持つ関数に複数の戻り値を引数として渡すことは許可されていません。内部関数は、外部関数のパラメーターに必要な値の正確な数を返す必要があります。この条件が満たされない場合は、次のように戻り値を変数に代入し、関数を個別に呼び出す必要があります。

<code class="go">code, str := returnIntAndString()
doSomething("message", code, str)</code>

結論として、Go の複数の戻り値はコードの再利用性を高めることができますが、制限があります。異なるパラメータ数を持つ他の関数に引数として渡す場合。この問題が発生した場合は、手動で割り当てて別の関数を呼び出す必要があります。

以上がGoで複数の戻り値を引数としてパラメータ数が異なる関数に渡すことはできますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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