Maison > développement back-end > Golang > 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
Libérer: 2024-11-09 05:34:02
original
378 Les gens l'ont consulté

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)
}
Copier après la connexion

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"))
}
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

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!

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal