Maison >développement back-end >Golang >Existe-t-il un équivalent Go au « string.format() » de Python ?

Existe-t-il un équivalent Go au « string.format() » de Python ?

DDD
DDDoriginal
2024-12-16 18:42:10511parcourir

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

Un équivalent du string.format de Python dans Go

Python fournit une méthode pratique appelée string.format pour formater des chaînes avec des espaces réservés personnalisés. Les développeurs de Go se demandent s'il existe une fonctionnalité équivalente dans leur langage.

Options existantes

L'alternative la plus simple dans Go est la fonction fmt.Sprintf, qui permet la substitution de paramètres dans une chaîne de format. Cependant, il ne prend pas en charge l'échange de l'ordre des paramètres.

Go inclut également le package texte/modèle, qui offre une approche plus polyvalente.

Solutions alternatives

Utilisation strings.Replacer

En utilisant le type strings.Replacer, les développeurs peuvent facilement créer leur propre formatage function :

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

Utilisation de text/template

Le package text/template permet plus de personnalisation avec une approche légèrement plus détaillée :

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

Utilisation d'index d'arguments explicites

Go permet l'utilisation d'indices d'arguments explicites dans les chaînes de format, ce qui permet de substituer plusieurs fois le même paramètre fois.

Bien qu'il existe des différences dans les détails d'implémentation, Go propose des solutions alternatives au string.format de Python, offrant à la fois flexibilité et efficacité dans les scénarios de formatage de chaînes.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn