Maison  >  Article  >  développement back-end  >  Qu'est-ce que le drapeau Golang

Qu'est-ce que le drapeau Golang

(*-*)浩
(*-*)浩original
2019-12-03 10:09:592950parcourir

Qu'est-ce que le drapeau Golang

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")
}
lie un type personnalisé via flag.Var(). Le type personnalisé doit implémenter l'interface Value (Receives doit être un pointeur), telle que

flag.Var(&flagVal, "name", "help message for flagname")

pour ce type d'indicateur, la valeur par défaut est la valeur initiale. valeur du type de variable

Appelez flag.Parse() pour analyser les paramètres de ligne de commande selon le drapeau défini

flag.Parse()

La fonction d'analyse rencontrera la première ligne de commande non-drapeau Arrêtez-vous lorsque le paramètre est spécifié. Les paramètres de ligne de commande sans indicateur font référence à des paramètres qui ne répondent pas à la syntaxe de la ligne de commande. Par exemple, le paramètre de ligne de commande est cmd --flag=true abc et le premier paramètre de ligne de commande sans indicateur est "abc".

Après avoir appelé Parse pour analyser, vous pouvez utiliser directement le drapeau lui-même (type pointeur) ou la variable liée (type valeur)

fmt.Println("ip has value ", *ip)
fmt.Println("flagvar has value ", flagvar)

Vous pouvez également obtenir des drapeaux non standard via flag.Args (), flag.Arg(i) paramètre de ligne de commande du drapeau

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!

Déclaration:
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