Go에서는 함수가 여러 값을 반환할 수 있습니다. 그러나 fmt.Println() 호출에서 함수의 반환 값을 형식 문자열에 직접 할당하는 것은 기본적으로 불가능합니다.
원하는 동작을 수행하려면 fmt.Println() 대신 fmt.Printf()를 사용해야 합니다. 그러나 가변 함수 호출 사양에서는 함수 호출 외에 추가 매개변수 전달을 허용하지 않습니다.
이 제한을 우회하려면 래퍼 함수를 사용할 수 있습니다. Wrap() 함수는 여러 값을 가져와 이를 인터페이스{} 값의 조각으로 반환합니다. 이를 통해 하나 이상의 반환 값이 있는 모든 함수의 반환 값을 fmt.Printf()에 전달할 수 있습니다.
package main import ( "fmt" ) // Wrapper function to convert multiple values to a slice of interface{} func wrap(vs ...interface{}) []interface{} { return vs } func main() { fmt.Printf("1: %v\n", wrap(oneInt())...) fmt.Printf("1: %v, 2: %v\n", wrap(twoInts())...) fmt.Printf("1: %v, 2: %v, 3: %v\n", wrap(threeStrings())...) } func oneInt() int { return 1 } func twoInts() (int, int) { return 1, 2 } func threeStrings() (string, string, string) { return "1", "2", "3" }
1: 1 1: 1, 2: 2 1: 1, 2: 2, 3: 3
wrap() 함수를 사용하면 함수의 여러 반환 값을 fmt.Printf()와 같은 가변 함수. 이는 함수 호출 결과의 형식을 지정하고 인쇄하는 간단하고 편리한 방법을 제공합니다.
위 내용은 fmt.Printf()를 사용하여 Go 함수에서 여러 반환 값을 인쇄하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!