Skip to content

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 flag

Tipos

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 comandos

Ejemplo

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>

Golang editado por www.golangdev.cn