Skip to content

flag

Il pacchetto Flag integrato di Go implementa l'analisi dei parametri della riga di comando. Il pacchetto Flag rende più semplice lo sviluppo di strumenti a riga di comando.

Importazione

go
import flag

Tipi

I tipi supportati sono:

  • bool
  • int
  • int64
  • uint
  • uint64
  • float
  • float64
  • string
  • duration

Definizione

Utilizzare flag.Type() per definire, il valore restituito è un puntatore

go
name := flag.String("name", "Mario Rossi", "Nome")
age := flag.Int("age", 15, "Età")
sex := flag.Bool("sex", true, "Sesso")

È possibile utilizzare anche flag.TypeVar() per definire

go
var name string
var age int
var sex bool
flag.StringVar(&name, "name", "Mario Rossi", "Nome")
flag.IntVar(&age, "age", 15, "Età")
flag.BoolVar(&sex, "sex", true, "Sesso")

Analisi

Analizzare i parametri chiamando flag.Parse(). I formati di parametri della riga di comando supportati sono i seguenti:

  • -flag xxx
  • --flag xxx
  • -flag=xxx
  • --flag=xxx

I parametri di tipo booleano devono utilizzare il segno di uguaglianza. L'analisi dei Flag si interromperà prima del primo parametro non della riga di comando.

Altro

go
func Args() []string // Restituisce tutti i parametri non della riga di comando

func NArg() int // Restituisce il numero di parametri non della riga di comando

func NFlag() int // Restituisce il numero di parametri della riga di comando

Esempio

go
var name string
var age int
var sex bool
flag.StringVar(&name, "name", "Mario Rossi", "Nome")
flag.IntVar(&age, "age", 15, "Età")
flag.BoolVar(&sex, "sex", true, "Sesso")

flag.Parse()
fmt.Println(name, age, sex)

Dopo la compilazione, avviare il programma dalla riga di comando

powershell
PS D:\WorkSpace\Code\GoProject\bin> .\go_build_GoProject_src_main.exe
Mario Rossi 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
        Età (default 15)
  -name string
        Nome (default "Mario Rossi")
  -sex
        Sesso (default true)
PS D:\WorkSpace\Code\GoProject\bin> .\go_build_GoProject_src_main.exe -age 15 -name "Bianchi" -sex=false
Bianchi 15 false
PS D:\WorkSpace\Code\GoProject\bin>

Golang by www.golangdev.cn edit