Python에서 문자열 보간은 종종 format() 함수를 사용하여 수행됩니다. 문자열 템플릿. Go에서는 유사한 기능을 구현하는 여러 가지 방법이 있습니다.
가장 간단한 옵션은 형식 문자열과 가변 개수의 문자열을 사용하는 fmt.Sprintf 함수를 사용하는 것입니다. 인수. 인수는 나타나는 순서대로 형식 문자열에 삽입됩니다. 예:
fmt.Sprintf("File %s had error %s", myfile, err)
그러나 이 방법은 때때로 국제화(I18N) 목적에 필요한 형식 문자열의 인수 순서 교체를 허용하지 않습니다.
Go는 또한 더 복잡한 문자열 보간을 허용하는 텍스트/템플릿 패키지를 제공합니다. 그러나 템플릿을 사용해야 하기 때문에 단순히 fmt.Sprintf를 사용하는 것보다 더 장황할 수 있습니다.
tmpl, _ := template.New("errmsg").Parse("File {{.File}} has error {{.Error}}") tmpl.Execute(&msg, params)
보다 컴팩트하고 유연한 솔루션을 사용하려면 다음을 사용하는 것이 좋습니다. strings.Replacer 유형. 이를 통해 키에서 대체 문자열로의 매핑을 정의할 수 있습니다. 키는 중괄호를 사용하여 형식 문자열에 포함될 수 있으며, 교체자는 이를 해당 대체 문자열로 대체합니다.
r := strings.NewReplacer("{file}", file, "{error}", err) fmt.Println(r.Replace("File {file} had error {error}"))
이 방법을 사용하면 형식 문자열에서 인수 순서를 바꿀 수 있으며 다음과 같은 작업을 수행할 수 있습니다. 다양한 유형의 값을 처리하도록 쉽게 확장됩니다.
마지막으로 Go의 fmt 패키지 또한 동일한 인수를 참조하기 위해 여러 번 사용할 수 있는 명시적 인수 인덱스도 지원합니다. 이를 통해 동일한 값을 형식 문자열에 여러 번 삽입하는 더 간결한 방법이 가능해졌습니다.
fmt.Printf("File %d has error %d\n", 1, 1)
이 접근 방식은 동일한 값을 여러 번 정렬하고 삽입하는 측면에서 가장 유연성을 제공합니다.
위 내용은 Go에서 Python의 `string.format()` 기능을 어떻게 얻을 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!