cmd
是*Command
结构实例的一个实例,其形式为:
type Command struct {
Run func(cmd *Command, args []string)
Flag flag.FlagSet
Usage string
Short string
Long string
}
我遇到的问题是:
if err := cmd.Flag.Parse(args[1:]); err != nil {
os.Exit(2)
}
当我运行程序时,返回的err
读取:flag needs an argument: -list
。以下是我设置标志的方法:
func init() {
cmdAddSensor.Flag.String("list", "default", "List all of the supported sensors")
}
在文档here之后。我感到很困惑,因为flag command line syntax提到任何这些形式都有效:
-flag
-flag=x
-flag x // non-boolean flags only
当我用另一个参数运行我的可执行文件时(即:./myexecutable blah -list garbage
我的标记按预期工作。我试图理解为什么flag package's source的892
行被我的触发设置。
我是Go新手,所以我可能会遗漏一些非常明显的东西。提前谢谢!