flag その2
その1消しちゃった…まあいいか
flag2.go
package main import ("fmt";"flag") var f1 int func init() { flag.IntVar(&f1, "f1", 999, "整数"); } var f2 *string = flag.String("f2", "xxx", "文字列"); var b = flag.Bool("b", true, "bool"); func main() { flag.Parse(); fmt.Printf("f1[%d] f2[%s] b[%t]\n", f1, *f2, *b); for i := 0; i < flag.NArg(); i++ { fmt.Printf("%s\n", flag.Arg(i)) } }
C:\go>flag2 f1[999] f2[xxx] b[true]
当然デフォルト値
C:\go>flag2 -x flag provided but not defined: -x Usage of flag2: -f1=999: 整数 -f2="xxx": 文字列 -b=true: bool
“-x”なんか知らんのでUsageが出る
C:\go>flag2 -f1=123 456 -f2=789 f1[123] f2[xxx] b[true] 456 -f2=789
オプションは前にまとめろと
C:\go>flag2 -f1=1 -f2="a bc" -b=f abc def f1[1] f2[a bc] b[false] abc def
イコール
C:\go>flag2 -f1 1 -f2 "a bc" -b f abc def f1[1] f2[a bc] b[true] f abc def
boolだけ動作が違うらしい