>백엔드 개발 >Golang >fmt.Printf()를 사용하여 Go 함수에서 여러 반환 값을 인쇄하려면 어떻게 해야 합니까?

fmt.Printf()를 사용하여 Go 함수에서 여러 반환 값을 인쇄하려면 어떻게 해야 합니까?

DDD
DDD원래의
2024-12-10 13:45:16587검색

How Can I Print Multiple Return Values from a Go Function Using fmt.Printf()?

가변 함수에 여러 반환 값 전달

Go에서는 함수가 여러 값을 반환할 수 있습니다. 그러나 fmt.Println() 호출에서 함수의 반환 값을 형식 문자열에 직접 할당하는 것은 기본적으로 불가능합니다.

fmt.Printf()를 사용한 접근 방식

원하는 동작을 수행하려면 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.