Heim > Backend-Entwicklung > Golang > Wie kann ich die „string.format()'-Funktionalität von Python in Go erreichen?

Wie kann ich die „string.format()'-Funktionalität von Python in Go erreichen?

Linda Hamilton
Freigeben: 2024-12-24 11:54:10
Original
416 Leute haben es durchsucht

How Can I Achieve Python's `string.format()` Functionality in Go?

Äquivalent zu Python string.format in Go?

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.

fmt.Sprintf

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)
Nach dem Login kopieren

Diese Methode ermöglicht jedoch nicht das Vertauschen der Argumentreihenfolge in der Formatzeichenfolge, was manchmal für Internationalisierungszwecke (I18N) erforderlich ist.

Text/Vorlage

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)
Nach dem Login kopieren

strings.Replacer

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}"))
Nach dem Login kopieren

Diese Methode ermöglicht das Vertauschen der Argumentreihenfolge in der Formatzeichenfolge und kann sein leicht erweiterbar, um verschiedene Arten von Werten zu verarbeiten.

Indizes für explizite Argumente

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)
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage