Python은 사용자 정의 자리 표시자로 문자열 형식을 지정하기 위해 string.format이라는 편리한 방법을 제공합니다. Go 개발자는 자신의 언어에 동등한 기능이 있는지 의문을 제기했습니다.
Go에서 가장 간단한 대안은 형식 문자열에서 매개변수 대체를 허용하는 fmt.Sprintf 함수입니다. 그러나 매개변수 순서 교환은 지원하지 않습니다.
Go에는 더욱 다양한 접근 방식을 제공하는 텍스트/템플릿 패키지도 포함되어 있습니다.
strings.Replacer 유형을 활용하여 개발자는 자신만의 서식을 쉽게 만들 수 있습니다. 함수:
package main import ( "fmt" "strings" ) func main() { file, err := "/data/test.txt", "file not found" log("File {file} had error {error}", "{file}", file, "{error}", err) } func log(format string, args ...string) { r := strings.NewReplacer(args...) fmt.Println(r.Replace(format)) }
텍스트/템플릿 패키지를 사용하면 좀 더 장황한 접근 방식으로 더 많은 사용자 정의가 가능합니다.
package main import ( "fmt" "os" "text/template" ) func main() { file, err := "/data/test.txt", 666 log4("File {{.file}} has error {{.error}}", map[string]interface{}{"file": file, "error": err}) } func log4(format string, p map[string]interface{}) { t := template.Must(template.New("").Parse(format)) t.Execute(os.Stdout, p) }
Go에서는 형식 문자열에 명시적인 인수 인덱스를 사용할 수 있습니다. 여러 번 대체됩니다.
구현 세부 사항에는 차이가 있지만 Go는 Python의 string.format에 대한 대체 솔루션을 제공하여 문자열 형식 지정 시나리오에서 유연성과 효율성을 모두 제공합니다.
위 내용은 Python의 `string.format()`과 동일한 Go가 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!