Réplication de valeurs de variables dans des chaînes formatées à l'aide de Sprintf
Dans Go, fmt.Sprintf() permet le formatage de chaînes à l'aide d'espaces réservés qui sont remplacé par les valeurs fournies. Bien qu'il attribue généralement à chaque espace réservé une valeur unique, il est souvent souhaitable de remplacer tous les espaces réservés par la même variable.
Indexation explicite des arguments
Pour y parvenir, fmt.Sprintf () utilise l'indexation d'arguments explicite. Dans la chaîne de format, placer [n] avant un verbe de formatage garantit que le nième argument (indexé à partir de 1) est formaté au lieu de la séquence ascendante par défaut. De même, [n] placé avant un * pour la largeur ou la précision indique l'argument contenant la valeur spécifiée.
Exemple d'utilisation
Considérez l'exemple fourni dans la question :
val := "foo" s := fmt.Sprintf("%v in %v is %v", val)
Pour répliquer la variable val sur tous les espaces réservés, modifiez la chaîne de format comme suit :
s := fmt.Sprintf("%[1]v in %[1]v is %[1]v", val)
Cela donne le résultat souhaité :
"foo in foo is foo"
Notation simplifiée
Notez que le premier index d'argument explicite peut être omis car la valeur par défaut est 1 :
s := fmt.Sprintf("%v in %[1]v is %[1]v", val)
Conclusion
En tirant parti de l'indexation d'arguments explicites, fmt.Sprintf() peut être utilisé pour répliquer une valeur de variable unique dans tous les espaces réservés dans un format formaté. chaîne, fournissant une solution concise et efficace pour des scénarios spécifiques.
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!