[Go] コマンドライン引数を使う(flag)

2023年6月25日

os.Args でも実現できますが、flag を利用すると引数の値を扱いやすくなります。文字や整数などの型を指定した引数の設定をし、flag.Parse() で判別が行われます。

package main

import (
	"flag"
	"fmt"
)

func main() {
	name := flag.String("name", "文字(default)", "文字の値を指定します")
	age := flag.Int("age", 60, "数値の値を指定します")
	resign := flag.Bool("resign", true, "真偽の値を指定します")
	flag.Parse()

	fmt.Printf("-name : %s\n", *name)
	fmt.Printf("-age : %d\n", *age)
	fmt.Printf("param -resign : %t\n", *resign)
}

引数を指定して実行してみます。

go run main.go -name nanasi -age 30 -resign false

結果です。引数で指定した値が、それぞれの変数に当てられている事が分かります。

param -name : nanasi
param -age : 30
param -resign : true

引数が何か分からないときは、-help で内容を確認することができます。

go run main.go -help
  -age int
        数値の値を指定します (default 60)
  -name string
        文字の値を指定します (default "文字(default)")
  -resign
        真偽の値を指定します (default true)

GolangGolang

Posted by kidatti