Maison >développement back-end >Golang >Comment puis-je obtenir la fonctionnalité « string.format() » de Python dans Go ?

Comment puis-je obtenir la fonctionnalité « string.format() » de Python dans Go ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-24 11:54:10421parcourir

How Can I Achieve Python's `string.format()` Functionality in Go?

Équivalent de Python string.format dans Go ?

En Python, l'interpolation de chaîne se fait souvent à l'aide de la fonction format(), qui permet d'insérer des valeurs dans un modèle de chaîne. Dans Go, il existe plusieurs façons d'obtenir des fonctionnalités similaires.

fmt.Sprintf

L'option la plus simple consiste à utiliser la fonction fmt.Sprintf, qui prend une chaîne de format et un nombre variable de arguments. Les arguments sont insérés dans la chaîne de format dans l'ordre dans lequel ils apparaissent. Par exemple :

fmt.Sprintf("File %s had error %s", myfile, err)

Cependant, cette méthode ne permet pas l'échange de l'ordre des arguments dans la chaîne de format, ce qui est parfois nécessaire à des fins d'internationalisation (I18N).

text/template

Go fournit également le package text/template, qui permet une interpolation de chaîne plus complexe. Cependant, cela nécessite l'utilisation d'un modèle, qui peut être plus verbeux que la simple utilisation de fmt.Sprintf.

tmpl, _ := template.New("errmsg").Parse("File {{.File}} has error {{.Error}}")
tmpl.Execute(&msg, params)

strings.Replacer

Pour une solution plus compacte et flexible, pensez à utiliser le type strings.Replacer. Il vous permet de définir un mappage des clés vers les chaînes de remplacement. Les clés peuvent être incluses dans la chaîne de format à l'aide d'accolades, et le remplaçant les remplacera par les chaînes de remplacement correspondantes.

r := strings.NewReplacer("{file}", file, "{error}", err)
fmt.Println(r.Replace("File {file} had error {error}"))

Cette méthode permet d'échanger l'ordre des arguments dans la chaîne de format et peut être facilement étendu pour gérer différents types de valeurs.

Indices d'arguments explicites

Enfin, le package fmt de Go prend également en charge les arguments explicites indices, qui peuvent être utilisés plusieurs fois pour référencer le même argument. Cela permet une manière plus concise d'insérer plusieurs fois la même valeur dans une chaîne de format.

fmt.Printf("File %d has error %d\n", 1, 1)

Cette approche offre la plus grande flexibilité en termes de classement et d'insertion de la même valeur plusieurs fois.

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