Skip to content

flag

Go 언어 내장 Flag 패키지는 명령줄 매개변수 해석을 구현하며, Flag 패키지를 사용하면 명령줄 도구 개발이 더욱 쉬워집니다.

가져오기

go
import flag

유형

지원하는 유형은 다음과 같습니다:

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

정의

flag.Type() 을 사용하여 정의하며, 반환 값은 포인터입니다.

go
name := flag.String("name", "张三", "이름")
age := flag.Int("age", 15, "나이")
sex := flag.Bool("sex", true, "성별")

flag.TypeVar() 를 사용하여 정의할 수도 있습니다.

go
var name string
var age int
var sex bool
flag.StringVar(&name, "name", "张三", "이름")
flag.IntVar(&age, "age", 15, "나이")
flag.BoolVar(&sex, "sex", true, "성별")

해석

flag.Parse() 를 호출하여 매개변수를 해석하며, 지원하는 명령줄 매개변수 형식은 다음과 같습니다:

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

불리언 유형 매개변수는 반드시 등호를 사용해야 하며, Flag 해석은 첫 번째 비명령줄 매개변수 앞에서 중지됩니다.

기타

go
func Args() []string //모든 비명령줄 매개변수 반환

func NArg() int //비명령줄 매개변수 개수 반환

func NFlag() int //명령줄 매개변수 개수 반환

예시

go
var name string
var age int
var sex bool
flag.StringVar(&name, "name", "张三", "이름")
flag.IntVar(&age, "age", 15, "나이")
flag.BoolVar(&sex, "sex", true, "성별")

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

컴파일 후 명령줄에서 프로그램 시작

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
        年龄 (default 15)
  -name string
        姓名 (default "张三")
  -sex
        性别 (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 by www.golangdev.cn edit