Maison  >  Article  >  développement back-end  >  Comment puis-je référencer des paramètres plusieurs fois dans des chaînes au format fmt.Sprintf ?

Comment puis-je référencer des paramètres plusieurs fois dans des chaînes au format fmt.Sprintf ?

DDD
DDDoriginal
2024-11-09 05:34:02344parcourir

How can I reference parameters multiple times in fmt.Sprintf format strings?

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!

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