Go 프로그래밍에서 fmt.Sprintf 함수는 문자열 형식을 지정하는 데 사용됩니다. 그러나 입력 문자열에 예상치 못한 필드가 포함되어 패닉이 발생하면 문제가 발생합니다.
다음 코드 조각을 고려해 보겠습니다.
<code class="go">package main import "fmt" func main() { tmp_str := "hello %s" str := fmt.Sprintf(tmp_str, "world") fmt.Println(str) }</code>
이 예에서는 , tmp_str은 단일 인수를 기대하는 템플릿 문자열입니다. 그러나 프로그램이 (템플릿 대신) "Hello Friends"와 같은 완전한 문자열을 수신하면 fmt.Sprintf는 추가 인수로 인해 패닉 상태가 됩니다. 오류 메시지는 다음과 같습니다.
Hello Friends%!(EXTRA string=world)
이 문제를 처리하는 한 가지 접근 방식은 템플릿 문자열에 유효한 %s 동사를 사용하도록 강제하는 것입니다. 사용자는 %.0s 또는 %.s와 같은 자리 표시자 동사를 제공하여 일치하는 필드가 없는 경우 인수가 0 길이로 잘릴 것임을 나타낼 수 있습니다. 예는 다음과 같습니다.
<code class="go">tmp_str := "Hello Friends%.s"</code>
%.s를 사용하면 추가 필드가 잘려 원하는 결과가 나옵니다.
Hello Friends
위 내용은 fmt.Sprintf에서 예기치 않은 필드를 처리하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!