Référencer efficacement les paramètres dans fmt.Sprintf
Pour formater avec précision les chaînes dans Go à l'aide de fmt.Sprintf, il est crucial de comprendre comment les arguments correspondent formater les verbes. Par défaut, chaque verbe formate le prochain argument disponible, créant une relation séquentielle.
Cependant, vous pouvez surmonter le besoin de transmettre le même paramètre plusieurs fois en utilisant des index d'arguments explicites. Faites précéder le verbe de formatage de [n], où n représente la position à un index de l'argument à formater.
Cette technique est particulièrement utile dans des fonctions comme getTableCreationCommands. Au lieu de passer la variable v quatre fois, vous pouvez la transmettre une fois et la référencer dans la chaîne fmt.Sprintf comme :
return fmt.Sprintf(` 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); `, s)
Dans cet exemple, nous passons la chaîne s une fois et utilisons l'argument index [ 1] pour y faire référence dans la chaîne formatée. Cette approche rationalise le processus de formatage, réduit la duplication de code et améliore la maintenabilité.
Voici un exemple complet :
package main import "fmt" func getTableCreationCommands(s string) string { return fmt.Sprintf(` 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); `, s) } func main() { fmt.Println(getTableCreationCommands("X")) }
Sortie :
CREATE TABLE share_X PARTITION OF share FOR VALUES IN (X); CREATE TABLE nearby_X PARTITION OF nearby FOR VALUES IN (X);
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!