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!