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 }
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() }
Analyse de plusieurs indicateurs :
Vous pouvez transmettre plusieurs indicateurs comme ceci :
go run your_file.go --list1 value1 --list1 value2
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!