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学习网由www.golangdev.cn整理维护