ハマったことを備忘録として残しておきます
langCode := map[string]string { "video": *flag.String("v", "J", "string flag"), "subtitle": *flag.String("s", "J", "string flag"), } flag.Parse() fmt.Println(langCode)
$ sample -v E
とすると、オプションで指定した"E"が入っておらず、しばらく悩んでから元のコードを見直したら、
i = flag.Int("int", 0, "int flag") fmt.Println(*i)
とあったのを見て、 flag.Parseをする前に、flag.Stringを使って、デフォルト値を入れてそのポインタを変数に入れておき、flag.Parse()するときに値を変更して使うものだということを理解したのだった