関数の戻り値を入力として別の関数に渡す
Go では、1 つの関数の戻り値を入力引数として便利に渡すことができます。別の機能。例:
<code class="go">func returnIntAndString() (i int, s string) {...} func doSomething(i int, s string) {...} doSomething(returnIntAndString())</code>
ただし、2 番目の関数に追加の引数を追加すると、複雑な問題が発生します。
<code class="go">func doSomething(msg string, i int, s string) {...} doSomething("message", returnIntAndString()) // Error</code>
エラー メッセージは、複数の戻り値を関数に渡すことができないことを示します単一の引数を期待しています。
解決策
Go 仕様に従って、関数は、後者が正確な引数を期待している場合にのみ、その戻り値を入力引数として別の関数に渡すことができます。引数の数も同じです。このシナリオには追加のパラメーターを渡すメカニズムがありません。
したがって、問題を解決するには、次の 2 つのオプションがあります:
<code class="go">func doSomethingVariadic(msg string, args ...interface{}) { // Code to handle variable number of arguments }</code>
その後、returnIntAndString() の戻り値を含む必要な引数を指定してこの関数を呼び出すことができます。
<code class="go">doSomethingVariadic("message", returnIntAndString())</code>
以上がGo で複数の戻り値を 1 つの関数から別の関数に渡すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。