Heim >Backend-Entwicklung >Golang >Gibt es ein Go-Äquivalent zu Pythons „string.format()'?

Gibt es ein Go-Äquivalent zu Pythons „string.format()'?

DDD
DDDOriginal
2024-12-16 18:42:10446Durchsuche

Is There a Go Equivalent to Python's `string.format()`?

Ein Äquivalent von Pythons string.format in Go

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.

Vorhandene Optionen

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.

Alternative Lösungen

Verwenden strings.Replacer

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))
}

Text/Vorlage verwenden

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)
}

Verwendung expliziter Argumentindizes

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!

Stellungnahme:
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