flag.FlagSet.String返回`标志需要一个参数:`

时间:2017-12-07 17:43:11

标签: go go-flag

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

我是Go新手,所以我可能会遗漏一些非常明显的东西。提前谢谢!

0 个答案:

没有答案