Skip to content

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 flag

Types

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 flag

Exemple

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>

Golang by www.golangdev.cn edit