Analyse des valeurs de liste en indicateurs dans Go
Dans Go, l'équivalent de l'argparse de Python est le package flag. Bien que les types d'indicateurs intégrés ne prennent en charge que les chaînes, les entiers et les booléens, il est possible de définir des types d'indicateurs personnalisés pour s'adapter aux listes de valeurs.
Type d'indicateur personnalisé pour les listes
Pour définir un type d'indicateur personnalisé pour les valeurs de liste, implémentez l'interface flag.Value dans un nouveau type, tel que arrayFlags. La méthode String() fournit une représentation sous forme de chaîne de la liste et la méthode Set() met à jour la liste avec de nouvelles valeurs.
Liaison de l'indicateur personnalisé
Une fois que vous Après avoir défini le type d'indicateur personnalisé, vous pouvez utiliser flag.Var() pour le lier à un indicateur. Cela vous permet de transmettre plusieurs valeurs pour cet indicateur au moment de l'exécution.
Exemple d'utilisation
Voici un exemple d'utilisation d'un type d'indicateur personnalisé pour les listes :
package main import ( "flag" "fmt" ) type arrayFlags []string func (i *arrayFlags) String() string { return fmt.Sprintf("%v", *i) } 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) // Prints [value1 value2] }
L'exécution de ce code avec la commande suivante analysera les valeurs de la liste dans myFlags variable :
go run your_file.go --list1 value1 --list1 value2
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!