Référencement des paramètres plusieurs fois dans les chaînes de format fmt.Sprintf
Dans votre code, vous avez une fonction qui crée des commandes de création de table à l'aide de fmt. Sprintf. Vous souhaitez éviter de transmettre le même paramètre plusieurs fois.
Solution utilisant l'indexation d'arguments explicites
Selon la documentation de fmt.Printf et les fonctions associées, vous pouvez utiliser explicite index d'arguments pour formater le nième argument :
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) }
Dans la chaîne de format, %[1]v fait référence au premier argument, s.
Exemple
Voici un exemple utilisant cette approche :
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);
En utilisant index d'arguments explicites, vous pouvez référencer le même paramètre plusieurs fois sans le transmettre séparément.
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!