在 GoLang 中定义独立的 FlagSet
GoLang 中的 FlagSet 类型使开发人员能够定义不同的标志集。在命令行界面中实现子命令时,此功能特别有用。然而问题来了:我们如何才能有效地实现这种分离?
独立 FlagSet 的实践
要建立自治的 FlagSet,区分子命令并随后调用至关重要解析相应的 FlagSet。考虑以下增强示例:
f1 := flag.NewFlagSet("f1", flag.ContinueOnError) silent := f1.Bool("silent", false, "") f2 := flag.NewFlagSet("f2", flag.ContinueOnError) loud := f2.Bool("loud", false, "") switch os.Args[1] { case "apply": if err := f1.Parse(os.Args[2:]); err == nil { fmt.Println("apply", *silent) } case "reset": if err := f2.Parse(os.Args[2:]); err == nil { fmt.Println("reset", *loud) } }
在此代码中,我们定义了两个 FlagSet,一个用于 apply 命令,另一个用于 Reset 命令。 switch 语句标识子命令并在指定的 FlagSet 上调用 Parse,有效地隔离每个命令的标志。
以上是如何在 Go 中为子命令定义和使用独立的 FlagSet?的详细内容。更多信息请关注PHP中文网其他相关文章!