>  기사  >  백엔드 개발  >  Go에서 문자열 조각을 사용하여 변수 매개변수를 Sprintf에 전달하는 방법은 무엇입니까?

Go에서 문자열 조각을 사용하여 변수 매개변수를 Sprintf에 전달하는 방법은 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-10-29 00:40:02180검색

How to Pass Variable Parameters to Sprintf in Go with Slices of Strings?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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