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")
}
遵循此处的文档。我很困惑,因为标志命令行语法提到这些形式中的任何一种都可以工作:
-flag
-flag=x
-flag x // non-boolean flags only
当我使用另一个参数运行我的可执行文件时(即:./myexecutable blah -list garbage
我的标志按预期工作。我试图理解为什么标志包的源代码892
行被我的设置触发。
我是围棋新手,所以我可能在这里遗漏了一些非常明显的东西。提前致谢!