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

Comment créer des types d'indicateurs personnalisés pour gérer les arguments de liste dans Golang ?

Mary-Kate Olsen
Libérer: 2024-11-17 20:30:02
original
598 Les gens l'ont consulté

How to Create Custom Flag Types to Handle List Arguments in Golang?

Comment définir des types d'indicateurs personnalisés pour gérer les arguments de liste dans Golang

Le module argparse de Python propose l'argument nargs pour spécifier le nombre de valeurs à être analysé lorsqu'il s'agit de listes. Le package flag de Golang, bien que prenant en charge les types de base, ne fournit pas de moyen direct d'accepter les listes. Voici comment définir votre propre type d'indicateur pour résoudre ce problème :

Création d'un type d'indicateur de tableau personnalisé :

Les programmes Golang peuvent créer leurs propres types d'indicateur en implémentant l'indicateur Interface .Valeur. Le code suivant définit un type arrayFlags pour gérer les tableaux de chaînes :

type arrayFlags []string

// String implements the flag.Value interface to convert the flag value to a string
func (i *arrayFlags) String() string {
    return fmt.Sprintf("%v", *i)
}

// Set implements the flag.Value interface to update the flag value when a new argument is provided
func (i *arrayFlags) Set(value string) error {
    *i = append(*i, value)
    return nil
}
Copier après la connexion

Utilisation du type d'indicateur personnalisé :

Pour utiliser le type d'indicateur de tableau personnalisé, vous pouvez utilisez la fonction flag.Var(). Voici un exemple :

var myFlags arrayFlags

func main() {
    flag.Var(&myFlags, "list1", "Some description for this param.")
    flag.Parse()
}
Copier après la connexion

Analyse de plusieurs indicateurs :

Vous pouvez transmettre plusieurs indicateurs comme ceci :

go run your_file.go --list1 value1 --list1 value2
Copier après la connexion

La variable myFlags contiennent désormais les valeurs passées au drapeau list1, vous donnant accès à la liste des valeurs.

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