Maison >développement back-end >Golang >Comment puis-je remplacer toutes les variables d'une chaîne Go Sprintf par la même valeur ?

Comment puis-je remplacer toutes les variables d'une chaîne Go Sprintf par la même valeur ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-13 05:32:09125parcourir

How Can I Replace All Variables in a Go Sprintf String with the Same Value?

Utilisation de Sprintf avec remplacement de valeur identique

Dans Sprintf, la possibilité de remplacer toutes les variables de la chaîne formatée par la même valeur est possible mais nécessite de modifier la chaîne de format.

Argument explicite Indices

La clé est d'utiliser des indices d'arguments explicites avant chaque verbe de formatage. Cela vous permet de spécifier quel argument doit être utilisé pour cette substitution particulière. Dans Printf, Sprintf et Fprintf, le comportement par défaut consiste à utiliser séquentiellement les arguments transmis. Cependant, les indices d'argument explicites, notés [n], vous permettent de sélectionner un index d'argument spécifique.

Exemple

Considérons l'exemple suivant :

val := "foo"
s := fmt.Sprintf("%[1]v in %[1]v is %[1]v", val)
fmt.Println(s)

Ici, nous utilisons l'argument explicite index [1] avant chaque verbe de formatage. Cela demande à Sprintf d'utiliser le premier argument, c'est-à-dire val, pour les trois substitutions. En conséquence, le résultat sera :

foo in foo is foo

Simplification sur une seule ligne

L'exemple ci-dessus peut être simplifié en une seule ligne :

fmt.Printf("%[1]v in %[1]v is %[1]v", "foo")

Omission du premier index

De plus, vous pouvez omettre le premier index explicite index d'argument, car sa valeur par défaut est automatiquement 1 :

fmt.Printf("%v in %[1]v is %[1]v", "foo")

En comprenant les indices d'argument explicites, vous pouvez spécifier la même valeur pour plusieurs remplacements dans Sprintf, quel que soit le nombre de spécificateurs de format.

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