【问题标题】:Go: command line flagsGo:命令行标志
【发布时间】:2015-02-23 00:36:37
【问题描述】:

我知道您可以像这样指定命令行标志并针对它们运行二进制文件:

./binary -output=html -type=doc

但是,我正在查看这个 Go 包的实现:https://github.com/jteeuwen/go-bindata

我想知道作者如何能够让用户运行这样的命令

go-bindata /data 

而不是

./go-bindata -target=/data

感谢一些帮助,以防我错过了什么!

【问题讨论】:

    标签: go


    【解决方案1】:

    诀窍是使用flag.Args(),简单地说,就是标志后面的非标志参数。您可以获取整个列表,也可以使用flag.Arg(i) 获取特定参数。见http://golang.org/pkg/flag/#Args

    并且来自您发布的程序的来源:

    // Create input configurations.
    c.Input = make([]bindata.InputConfig, flag.NArg())
    for i := range c.Input {
        c.Input[i] = parseInput(flag.Arg(i))
    }
    

    【讨论】:

    • 没有 ./go-bindata 的 go-bindata 怎么办?
    • @user3918985 因为你只需要在 PATH 中安装可执行文件,它与 Go 无关。您只需将 $GOPATH/bin 添加到 $PATH 即可,您将准备好所有已安装的 go 可执行文件。
    【解决方案2】:

    使用flag 包非常简单。结帐flag.Args

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-25
      • 2015-02-05
      • 1970-01-01
      • 2014-08-13
      • 2020-09-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多