flag
El paquete Flag incorporado en Go implementa el análisis de parámetros de línea de comandos. El paquete Flag hace que el desarrollo de herramientas de línea de comandos sea más simple.
Importar
go
import flagTipos
Los tipos admitidos son:
- bool
- int
- int64
- uint
- uint64
- float
- float64
- string
- duration
Definición
Use flag.Type() para definir, el valor de retorno es un puntero
go
name := flag.String("name", "张三", "Nombre")
age := flag.Int("age", 15, "Edad")
sex := flag.Bool("sex", true, "Sexo")También puede usar flag.TypeVar() para definir
go
var name string
var age int
var sex bool
flag.StringVar(&name, "name", "张三", "Nombre")
flag.IntVar(&age, "age", 15, "Edad")
flag.BoolVar(&sex, "sex", true, "Sexo")Análisis
Analice los parámetros llamando a flag.Parse(). Los formatos de parámetros de línea de comandos admitidos son los siguientes:
-flag xxx--flag xxx-flag=xxx--flag=xxx
Los parámetros de tipo booleano deben usar un signo de igual. El análisis de Flag se detendrá antes del primer parámetro que no sea de línea de comandos.
Otros
go
func Args() []string //Devuelve todos los parámetros que no son de línea de comandos
func NArg() int //Devuelve el número de parámetros que no son de línea de comandos
func NFlag() int //Devuelve el número de parámetros de línea de comandosEjemplo
go
var name string
var age int
var sex bool
flag.StringVar(&name, "name", "张三", "Nombre")
flag.IntVar(&age, "age", 15, "Edad")
flag.BoolVar(&sex, "sex", true, "Sexo")
flag.Parse()
fmt.Println(name, age, sex)Después de compilar, inicie el programa en la línea de comandos
powershell
PS D:\WorkSpace\Code\GoProject\bin> .\go_build_GoProject_src_main.exe
张三 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
Edad (default 15)
-name string
Nombre (default "张三")
-sex
Sexo (default true)
PS D:\WorkSpace\Code\GoProject\bin> .\go_build_GoProject_src_main.exe -age 15 -name "李四" -sex=false
李四 15 false
PS D:\WorkSpace\Code\GoProject\bin>