Maison > Article > développement back-end > Comment puis-je analyser plusieurs valeurs dans une liste à l'aide d'indicateurs personnalisés dans Golang ?
Drapeau personnalisé pour les listes dans Golang
Le package flag de Golang permet une analyse facile des arguments, mais il prend généralement en charge les types de base tels que chaîne, entier, ou booléen. Cela peut sembler limitant lorsque l'on travaille avec des listes de valeurs.
Golang permet la création de drapeaux personnalisés en implémentant l'interface flag.Value. Cette interface nécessite l'implémentation de deux méthodes : String() et Set(). En définissant un indicateur personnalisé pour les listes, vous pouvez activer l'analyse de plusieurs valeurs transmises via des indicateurs de ligne de commande.
Définition d'un indicateur de liste personnalisé
Considérez l'exemple suivant :
package main import "flag" import "fmt" type arrayFlags []string // String() implements the flag.Value interface func (i *arrayFlags) String() string { return fmt.Sprintf("%v", *i) } // Set() implements the flag.Value interface func (i *arrayFlags) Set(value string) error { *i = append(*i, value) return nil } var myFlags arrayFlags func main() { flag.Var(&myFlags, "list1", "Some description for this param.") flag.Parse() fmt.Println(myFlags) }
Ceci définit un type d'indicateur personnalisé appelé arrayFlags qui accepte plusieurs valeurs. L'indicateur est lié au nom de l'indicateur "list1" et peut être analysé à l'aide de flag.Parse().
Utilisation
Pour transmettre plusieurs valeurs à l'aide de cet indicateur personnalisé, vous pouvez exécuter le programme comme suit :
go run your_file.go --list1 value1 --list1 value2 --list1 value3
Cela remplira la variable myFlags avec les trois valeurs fournies : ["value1", "valeur2", "valeur3"]. Vous pouvez ensuite accéder à ces valeurs au sein de votre programme.
Playground
Pour un exemple en direct, vous pouvez visiter le terrain de jeu suivant : [lien playground]
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!