Maison >développement back-end >Golang >Comment puis-je répéter une variable dans fmt.Sprintf de Go à l'aide d'index d'arguments ?

Comment puis-je répéter une variable dans fmt.Sprintf de Go à l'aide d'index d'arguments ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-30 10:59:18868parcourir

How Can I Repeat a Variable in Go's fmt.Sprintf Using Argument Indexes?

Réplication de variables dans Sprintf à l'aide d'index d'arguments explicites

Dans l'utilisation conventionnelle de fmt.Sprintf(), les variables sont substituées séquentiellement dans la chaîne formatée. Cependant, il est possible de répliquer une seule variable tout au long de la chaîne.

Solution

En utilisant des index d'arguments explicites, la chaîne de format peut être modifiée pour référencer plusieurs fois le même argument. times :

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

La notation %[n] avant un verbe de formatage spécifie l'index de l'argument à utiliser. Dans ce cas, %[1] indique que le premier argument (val) doit être utilisé pour toutes les instances de l'espace réservé.

Sortie

Exécution du Sprintf modifié :

fmt.Println(s)

Produit :

foo in foo is foo

Effectivement, chaque espace réservé de variable dans la chaîne est remplacé par la valeur de val, résultant en la réplication souhaitée.

Forme simplifiée

Pour le scénario spécifique où le premier argument doit être utilisé de manière cohérente, l'index %[1] peut être omis :

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

Cette syntaxe abrégée simplifie la chaîne de formatage tout en obtenant la même fonctionnalité de réplication.

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