한 함수의 반환 값을 다른 함수의 입력 인수로 사용하는 방법
문제:
returnIntAndString과 doSomething이라는 두 가지 함수를 고려해보세요. returnIntAndString은 정수와 문자열이라는 두 개의 값을 반환하고, doSomething은 문자열, 정수, 또 다른 문자열의 세 가지 인수를 사용합니다.
returnIntAndString의 반환 값을 인수로 사용하여 doSomething을 호출하면 다음 오류가 발생합니다.
main.go:45: multiple-value returnIntAndString() in single-value context main.go:45: not enough arguments in call to doSomething()
답변:
Go 사양에 따르면 함수 호출은 다음과 같은 경우에만 다른 함수의 반환 값을 호출된 함수의 매개 변수에 바인딩할 수 있습니다.
이 경우 returnIntAndString은 두 개의 값을 반환하지만 doSomething에는 세 번째 인수가 필요합니다. 따라서 이 직접 호출은 허용되지 않습니다.
대안:
두 가지 대체 솔루션이 있습니다.
returnIntAndString의 반환 값을 보유하는 구조체를 만들고 해당 구조체의 인스턴스를 doSomething에 전달합니다.
<code class="go">type ReturnValues struct { I int S string } func returnIntAndString() ReturnValues { return ReturnValues{42, "Hello"} } func doSomething(msg string, values ReturnValues) { // Use values.I and values.S as needed } doSomething("Message", returnIntAndString())</code>
returnIntAndString의 반환 값을 명명된 변수에 할당하고 해당 변수를 doSomething에 전달합니다.
<code class="go">var i, s = returnIntAndString() doSomething("Message", i, s)</code>
위 내용은 Go에서 여러 반환 값을 인수로 다른 함수에 전달하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!