flag
Le package flag intégré au langage Go implémente l'analyse des arguments de ligne de commande. Le package flag rend le développement d'outils en ligne de commande plus simple.
Import
go
import flagTypes
Les types pris en charge sont :
- bool
- int
- int64
- uint
- uint64
- float
- float64
- string
- duration
Définition
Utilisez flag.Type() pour définir, la valeur de retour est un pointeur
go
name := flag.String("name", "Zhang San", "nom")
age := flag.Int("age", 15, "âge")
sex := flag.Bool("sex", true, "sexe")Vous pouvez également utiliser flag.TypeVar() pour définir
go
var name string
var age int
var sex bool
flag.StringVar(&name, "name", "Zhang San", "nom")
flag.IntVar(&age, "age", 15, "âge")
flag.BoolVar(&sex, "sex", true, "sexe")Analyse
Appelez flag.Parse() pour analyser les paramètres. Les formats d'arguments de ligne de commande pris en charge sont :
-flag xxx--flag xxx-flag=xxx--flag=xxx
Les arguments de type booléen doivent utiliser le signe égal. L'analyse des flags s'arrête avant le premier argument qui n'est pas un argument de ligne de commande.
Autres
go
func Args() []string //retourne tous les arguments non-flag
func NArg() int //retourne le nombre d'arguments non-flag
func NFlag() int //retourne le nombre d'arguments flagExemple
go
var name string
var age int
var sex bool
flag.StringVar(&name, "name", "Zhang San", "nom")
flag.IntVar(&age, "age", 15, "âge")
flag.BoolVar(&sex, "sex", true, "sexe")
flag.Parse()
fmt.Println(name, age, sex)Après compilation, lancez le programme en ligne de commande
powershell
PS D:\WorkSpace\Code\GoProject\bin> .\go_build_GoProject_src_main.exe
Zhang San 15 true
PS D:\WorkSpace\Code\GoProject\bin> .\go_build_GoProject_src_main.exe -h
Usage of D:\WorkSpace\Code\GoProject\bin\go_build_GoProject_src_main.exe:
-age int
âge (default 15)
-name string
nom (default "Zhang San")
-sex
sexe (default true)
PS D:\WorkSpace\Code\GoProject\bin> .\go_build_GoProject_src_main.exe -age 15 -name "Li Si" -sex=false
Li Si 15 false
PS D:\WorkSpace\Code\GoProject\bin>