Go에서 Sprintf에 변수 매개변수 전달
많은 수의 매개변수로 작업할 때 수동으로 Sprintf에 전달하는 것은 지루할 수 있습니다. 다행히 이 프로세스를 단순화할 수 있는 방법이 있습니다.
문제:
문자열 조각([]string)을 Sprintf에 직접 전달하려고 하면 오류가 발생합니다. :
cannot use v (type []string) as type []interface {} in argument to fmt.Printf
해결책:
이 오류를 해결하려면 슬라이스를 []문자열 대신 []인터페이스{} 유형으로 선언하세요. Sprintf는 서명에 표시된 대로 인터페이스{} 매개변수 배열을 기대합니다.
func Printf(format string, a ...interface{}) (n int, err error)
예:
s := []interface{}{"a", "b", "c", "d"} fmt.Printf("%5s %4s %3s\n", s[1], s[2], s[3]) v := s[1:] fmt.Printf("%5s %4s %3s\n", v...)
출력(Go Playground) :
b c d b c d
참고:
[]interface{}와 []string은 서로 바꿔 사용할 수 없습니다. 기존 []문자열이 있는 경우 다음과 같이 수동으로 []인터페이스{}로 변환할 수 있습니다.
ss := []string{"a", "b", "c"} is := make([]interface{}, len(ss)) for i, v := range ss { is[i] = v }
위 내용은 Go에서 문자열 조각을 사용하여 변수 매개변수를 Sprintf에 전달하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!