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, "")
要分离这些标志集,请区分子命令,然后在适当的集合上调用 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中文网其他相关文章!