我知道您可以指定命令行标志并对它们运行二进制文件,如下所示:
./binary -output=html -type=doc
但是,我正在研究这个Go包的实现:https://github.com/jteeuwen/go-bindata
我想知道作者如何能够让用户运行像这样的命令
go-bindata /data
而不是
./go-bindata -target=/data
如果我遗漏了任何东西,请提供一些帮助!
答案 0 :(得分:6)
诀窍是使用flag.Args()
,简单地说就是标志后面的非标志参数。您可以获取整个列表,也可以使用flag.Arg(i)
获取特定的arg。见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))
}
答案 1 :(得分:1)