Heim >Backend-Entwicklung >Golang >Gibt es ein Go-Äquivalent zu Pythons „string.format()'?
Python bietet eine praktische Methode namens string.format zum Formatieren von Strings mit benutzerdefinierten Platzhaltern. Go-Entwickler haben sich gefragt, ob es in ihrer Sprache eine entsprechende Funktion gibt.
Die einfachste Alternative in Go ist die Funktion fmt.Sprintf, die die Parameterersetzung in einer Formatzeichenfolge ermöglicht. Das Vertauschen der Reihenfolge der Parameter wird jedoch nicht unterstützt.
Go enthält auch das Text-/Vorlagenpaket, das einen vielseitigeren Ansatz bietet.
Durch die Verwendung des Typs strings.Replacer können Entwickler ganz einfach ihre eigene Formatierung erstellen Funktion:
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)) }
Das Text/Vorlage-Paket ermöglicht eine stärkere Anpassung mit einem etwas ausführlicheren Ansatz:
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 ermöglicht die Verwendung expliziter Argumentindizes in Formatzeichenfolgen, wodurch derselbe Parameter mehrfach ersetzt werden kann Mal.
Obwohl es Unterschiede in den Implementierungsdetails gibt, bietet Go alternative Lösungen zu Pythons string.format und bietet sowohl Flexibilität als auch Effizienz in String-Formatierungsszenarien.
Das obige ist der detaillierte Inhalt vonGibt es ein Go-Äquivalent zu Pythons „string.format()'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!