Il existe de nombreuses façons de gérer les paramètres de ligne de commande dans les programmes Golang. Dans les cas simples, vous pouvez traiter directement os.Args sans utiliser de bibliothèque ; en fait, la bibliothèque standard de Golang fournit le package flag pour traiter les paramètres de ligne de commande ; il existe également des bibliothèques tierces pour traiter les paramètres de ligne de commande, telles que Pflag.
le package flag fournit une série d'interfaces fonctionnelles pour analyser les paramètres de ligne de commande (apprentissage recommandé : go)
commande Syntaxe de ligne
La syntaxe de ligne de commande a principalement les formes suivantes :
-flag //只支持bool类型 -flag=x -flag x //只支持非bool类型
La syntaxe ci-dessus a le même effet pour un ou deux signes '-', Cependant, il convient de noter que pour le troisième cas, seuls les types non booléens sont pris en charge. La raison en est que lorsque la situation suivante est rencontrée,
cmd -x *
* vaut 0. False peut représenter un nom de fichier ou un fichier. , ou il peut représenter la valeur de la balise x. S'il est 0 ou faux, une ambiguïté se produira, il est donc stipulé que le troisième type ne prend en charge que les types non booléens. Pour les indicateurs entiers, les valeurs légales peuvent être 1234, 0664, 0x1234 ou des nombres négatifs, etc. Pour l'indicateur booléen, il peut être 1, 0, t, f, T, F, true, false, TRUE, FALSE, True, False, etc.
Méthode d'analyse des paramètres de ligne de commande
L'utilisation de flag comprend principalement les étapes suivantes
Il existe trois façons de définir les paramètres de flag
Par flag.String( ), Bool (), Int() et autres méthodes flag.Xxx(), cette méthode renvoie un pointeur correspondant
import "flag" var ip = flag.Int("flagname", 1234, "help message for flagname")
Lier le drapeau à une variable via le drapeau , tel que
var flagvar int func init() { flag.IntVar(&flagvar, "flagname", 1234, "help message for flagname") }
flag.Var(&flagVal, "name", "help message for flagname")
flag.Parse()
fmt.Println("ip has value ", *ip) fmt.Println("flagvar has value ", flagvar)
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!