Maison > développement back-end > Golang > le corps du texte

Comment référencer le même paramètre plusieurs fois dans des chaînes au format fmt.Sprintf ?

Susan Sarandon
Libérer: 2024-11-07 16:38:02
original
730 Les gens l'ont consulté

How to Reference the Same Parameter Multiple Times in fmt.Sprintf Format Strings?

Référencer le même paramètre plusieurs fois dans des chaînes au format fmt.Sprintf

Dans l'extrait de code donné, vous avez une fonction qui génère des commandes SQL pour créer des tables en utilisant fmt.Sprintf. Bien que l'approche originale soit verbeuse, vous désirez un moyen de référencer le paramètre v une seule fois pour un meilleur formatage de la chaîne.

Selon la documentation de fmt.Sprintf :

Dans Printf, Sprintf et Fprintf, le comportement par défaut est que chaque verbe de formatage formate les arguments successifs passés dans l'appel. Cependant, la notation [n] juste avant le verbe indique que le nième argument indexé doit être formaté à la place.

Cela signifie que vous pouvez transmettre la variable v une fois et utiliser le Notation [n] pour spécifier l'index d'argument à formater. Par exemple, votre fonction mise à jour peut être :

func getTableCreationCommands(v 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);
    `, v)
}
Copier après la connexion

Ici, %[1]v indique au formateur d'utiliser le premier argument, qui est v, deux fois.

Pour utiliser cette fonction :

import "fmt"

func main() {
    s := "X"
    fmt.Println(getTableCreationCommands(s))
}
Copier après la connexion

Sortie :

CREATE TABLE share_X PARTITION OF share FOR VALUES IN (X);
CREATE TABLE nearby_X PARTITION OF nearby FOR VALUES IN (X);
Copier après la connexion

Cette approche fournit un moyen plus propre et plus concis de formater vos commandes SQL avec plusieurs références au même paramètre.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!