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