다중 인수 함수의 인수로 값 반환
여러 값을 반환하는 함수를 처리할 때 이러한 값을 입력으로 사용할 수 있습니다. 다른 함수에 대한 인수. 그러나 수신 함수에 추가 매개변수가 있는 경우 특정 제한 사항이 적용됩니다.
다음 코드를 고려하세요.
<code class="go">func returnIntAndString() (i int, s string) {...} func doSomething(msg string, i int, s string) {...}</code>
returnIntAndString()의 반환 값을 doSomething()에 직접 전달하려고 시도하는 경우 :
<code class="go">doSomething("message", returnIntAndString())</code>
Go는 다음과 같은 오류를 표시합니다.
multiple-value returnIntAndString() in single-value context not enough arguments in call to doSomething()
이는 Go의 반환 값이 함수의 인수로 단일 값만 전달하도록 허용하기 때문입니다. 이전 함수는 여러 값을 생성합니다.
이 문제를 해결하려면 다음 두 가지 옵션이 있습니다.
반환 값 할당:
반환 할당 값을 임시 변수에 저장하고 doSomething()에 개별적으로 전달합니다.
<code class="go">i, s := returnIntAndString() doSomething("message", i, s)</code>
특정 값 반환:
returnIntAndString() 함수에서 각 값에 대한 필드가 있는 명명된 구조체입니다. 그런 다음 구조체를 doSomething()에 전달합니다.
<code class="go">type Result struct { I int S string } func returnIntAndString() Result {...} res := returnIntAndString() doSomething("message", res.I, res.S)</code>
Go의 특정 규칙은 인수를 할당할 때 다중 값 반환 값 함수와 함께 추가 매개 변수를 허용하지 않는다는 점을 기억하세요. 언어 사양에 명시된 특정 조건이 충족되지 않는 경우 제공된 솔루션 중 하나를 사용해야 합니다.
위 내용은 Go에서 여러 반환 값을 함수에 인수로 전달하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!