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
Libérer: 2024-12-16 18:42:10
original
444 Les gens l'ont consulté

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))
}
Copier après la connexion

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)
}
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal