0

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行被我的设置触发。

我是围棋新手,所以我可能在这里遗漏了一些非常明显的东西。提前致谢!

4

0 回答 0