如何使用pflag同时使用其他使用flag的包?
其中一些包定义了标志包的标志(例如,在它们的init函数中) - 并且需要调用flag.Parse()。
使用pflag包定义标志,需要调用pflag.Parse()。
当参数混合时,对flag.Parse()和pflag.Parse()的一次调用将失败。
如何将pflag与其他使用flag的包一起使用?
答案 0 :(得分:3)
我找到了两种方法。
一个使用pflags AddGoFlags()。 IE。
f := pflag.NewFlagSet("goFlags", pflag.ExitOnError)
f.AddGoFlagSet(flag.CommandLine)
f.Parse([]string{
"--v=10", // Your go flags that will be pass to other programs.
})
flag.Parse()
您可以使用的另一种方法。这不是书,但我看到一些使用这个.. 通过另一个pflag获得标志值。
pflag.StringVar(&f, "f", "**", "***")
pflag.Parse()
将值设置为标志值。
flag.Set("v", f)
flag.Parse()
你很高兴...
答案 1 :(得分:0)
我收到了维护者对pflag的回复。
解决方案是将为flags定义的所有标志“导入”到pflag中,然后单独调用pflag.Parse()。
pflag提供了一个名为AddGoFlagSet()的便捷功能来实现这一目标。
答案 2 :(得分:-1)
如何将pflag与其他使用flag的包一起使用?
你做不到。它是或者。 plfag是flag的替代品,而不是插件。