如何在使用 pflag 的同时还使用其他使用 flag 的包?
其中一些包为 flag 包定义了标志(例如在它们的 init 函数中) - 并需要调用 flag.Parse() 。
使用 pflag 包定义标志,需要调用 pflag.Parse()。
当参数混合时,对 flag.Parse() 和 pflag.Parse() 的调用之一将失败。
如何将 pflag 与其他使用 flag 的包一起使用?
最佳答案
我找到了两种方法。
带有 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()
你就可以开始了..
关于golang : How can I use pflag with other packages that use flag?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34053881/