FlagSet は、個別のフラグ セットの定義を容易にし、コマンドライン インターフェイスでのサブコマンドの実装をサポートします。
Goでは、複数のFlagSet型を作成し、フラグ変数を初期化できます。ただし、これらのフラグ セットを解析するときに、コマンド ラインに別のセット向けのフラグが含まれている場合はエラーが発生します。
f1 := flag.NewFlagSet("f1", flag.ContinueOnError) apply := f1.Bool("apply", false, "") silent := f1.Bool("silent", false, "") f2 := flag.NewFlagSet("f2", flag.ContinueOnError) reset := f2.Bool("reset", false, "")
これらの FlagSet を分離するには、サブコマンドを区別してから、適切なセットに対して Parse を呼び出します。
switch os.Args[1] { case "apply": f1.Parse(os.Args[2:]) fmt.Println("apply", *silent) case "reset": f2.Parse(os.Args[2:]) fmt.Println("reset", *loud) }
このアプローチに従うことで、GoLang で独立した FlagSet を定義して解析でき、フラグが確実に対象のサブコマンドにのみ適用されます。
以上がGo でサブコマンド用に独立した FlagSet を定義および解析するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。