Maison > Article > développement back-end > Comment puis-je référencer efficacement le même paramètre plusieurs fois dans fmt.Sprintf ?
Référencer efficacement le même paramètre dans fmt.Sprintf
Lorsque vous travaillez avec fmt.Sprintf, il est courant de rencontrer des situations où vous devez référencez le même paramètre plusieurs fois dans la chaîne de format. Bien que la duplication du paramètre puisse sembler simple, elle peut s'avérer inefficace et introduire du code redondant.
Solution : Utilisation de l'indexation d'arguments explicites
Pour résoudre ce problème, fmt.Sprintf fournit une solution connue sous le nom d'« indexation d'arguments explicites ». Cette technique vous permet de faire référence à un argument spécifique par son index dans la chaîne de format. En utilisant le spécificateur de format [n] immédiatement avant le verbe de formatage, vous pouvez spécifier quel argument doit être formaté.
Par exemple, considérons le code suivant :
package main import "fmt" func main() { v := "X" // Use explicit argument indexing to reference v four times fmt.Printf( `CREATE TABLE share_%[1]v PARTITION OF share FOR VALUES IN (%[1]v); CREATE TABLE nearby_%[1]v PARTITION OF nearby FOR VALUES IN (%[1]v);`, v, v, v, v, ) }
Dans cet exemple, au lieu de passer v quatre fois, nous utilisons [1]v dans la chaîne de format, qui fait effectivement référence quatre fois au premier argument. Le résultat est une chaîne de format concise et efficace :
CREATE TABLE share_X PARTITION OF share FOR VALUES IN (X); CREATE TABLE nearby_X PARTITION OF nearby FOR VALUES IN (X);
Avantages de l'indexation explicite des arguments
L'utilisation de l'indexation explicite des arguments offre plusieurs avantages :
Conclusion
L'indexation explicite des arguments dans fmt.Sprintf fournit un moyen efficace et flexible de référencer le même paramètre plusieurs fois dans une chaîne de format. Cette technique simplifie non seulement le code, mais améliore également les performances, ce qui en fait un outil précieux pour travailler avec le formatage de chaînes dans Go.
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!