Go에서 Sprintf에 변수 매개변수 전달
Go에서 Sprintf 함수는 변수 인수가 []인터페이스{} 유형일 것으로 예상합니다. . 이는 []string과 같은 다른 유형의 조각으로 작업할 때 제한이 될 수 있습니다.
문자열 조각을 Sprintf에 전달하려고 시도하는 다음 코드를 고려하세요.
<code class="go">s := []string{"a", "b", "c", "d"} fmt.Printf("%5s %4s %3s\n", s[1], s[2], s[3])</code>
이 코드를 실행하면 다음 오류가 발생합니다.
cannot use v (type []string) as type []interface {} in argument to fmt.Printf
이 오류를 해결하려면 슬라이스를 []인터페이스{} 유형으로 변환해야 합니다. 이 작업은 아래와 같이 수동으로 수행할 수 있습니다.
<code class="go">ss := []string{"a", "b", "c"} is := make([]interface{}, len(ss)) for i, v := range ss { is[i] = v }</code>
또는 문자열 조각을 처음부터 []interface{}로 선언할 수 있습니다.
<code class="go">is := []interface{}{"a", "b", "c"}</code>
슬라이스를 사용하여 올바른 유형으로 변환되면 이제 Sprintf를 사용하여 변수 인수의 형식을 지정할 수 있습니다.
<code class="go">fmt.Printf("%5s %4s %3s\n", is[1], is[2], is[3])</code>
출력:
b c d
문자열 조각을 []인터페이스{}로 변환하여, Sprintf에 여러 인수를 편리하게 전달할 수 있게 되었습니다.
위 내용은 Go에서 문자열 조각을 사용하여 변수 매개변수를 Sprintf에 전달하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!