In Python erfolgt die String-Interpolation oft mit der Funktion format(), die das Einfügen von Werten in ermöglicht eine String-Vorlage. In Go gibt es mehrere Möglichkeiten, eine ähnliche Funktionalität zu erreichen.
Die einfachste Option ist die Verwendung der Funktion fmt.Sprintf, die eine Formatzeichenfolge und eine variable Anzahl von akzeptiert Argumente. Die Argumente werden in der Reihenfolge, in der sie erscheinen, in die Formatzeichenfolge eingefügt. Zum Beispiel:
fmt.Sprintf("File %s had error %s", myfile, err)
Diese Methode ermöglicht jedoch nicht das Vertauschen der Argumentreihenfolge in der Formatzeichenfolge, was manchmal für Internationalisierungszwecke (I18N) erforderlich ist.
Go stellt außerdem das Text/Template-Paket bereit, das eine komplexere String-Interpolation ermöglicht. Es erfordert jedoch die Verwendung einer Vorlage, die ausführlicher sein kann als die einfache Verwendung von fmt.Sprintf.
tmpl, _ := template.New("errmsg").Parse("File {{.File}} has error {{.Error}}") tmpl.Execute(&msg, params)
Für eine kompaktere und flexiblere Lösung sollten Sie die Verwendung in Betracht ziehen der strings.Replacer-Typ. Es ermöglicht Ihnen, eine Zuordnung von Schlüsseln zu Ersatzzeichenfolgen zu definieren. Die Schlüssel können mit geschweiften Klammern in die Formatzeichenfolge eingefügt werden, und der Ersetzende ersetzt sie durch die entsprechenden Ersatzzeichenfolgen.
r := strings.NewReplacer("{file}", file, "{error}", err) fmt.Println(r.Replace("File {file} had error {error}"))
Diese Methode ermöglicht das Vertauschen der Argumentreihenfolge in der Formatzeichenfolge und kann sein leicht erweiterbar, um verschiedene Arten von Werten zu verarbeiten.
Schließlich unterstützt das fmt-Paket von Go auch explizite Argumente Indizes, die mehrfach verwendet werden können, um auf dasselbe Argument zu verweisen. Dies ermöglicht eine prägnantere Möglichkeit, denselben Wert mehrmals in eine Formatzeichenfolge einzufügen.
fmt.Printf("File %d has error %d\n", 1, 1)
Dieser Ansatz bietet die größte Flexibilität hinsichtlich der Reihenfolge und dem mehrfachen Einfügen desselben Werts.
Das obige ist der detaillierte Inhalt vonWie kann ich die „string.format()'-Funktionalität von Python in Go erreichen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!