问题标签 [pflag-go]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
2361 浏览

go - golang:如何将 pflag 与其他使用 flag 的包一起使用?

如何在使用 pflag 的同时使用其他使用 flag 的包?

其中一些包为 flag 包定义了标志(例如在它们的 init 函数中) - 并且需要调用 flag.Parse()。

使用 pflag 包定义标志,需要调用 pflag.Parse()。

当参数混合时,对 flag.Parse() 和 pflag.Parse() 的调用之一将失败。

如何将 pflag 与其他使用标志的软件包一起使用?

0 投票
1 回答
52 浏览

go - 将 pflags.Flag.Value 转换为任意类型

github.com/spf13/cobra用来解析命令行标志,我所做的几乎所有事情都运行良好,但我无法弄清楚如何*cobra.Command在运行时从 a 中获取特定类型的值。

我的命令定义如下所示cmd/generate.go

注意:我知道有用于将这些绑定到静态变量的 API,如果可能的话,我会尽量避免这样做,以将内容包含在 Cobra 中。

在内部generateTokenCommand.Run,例如我的入口点,我无法从cobra.Command.

当我需要获取字符串值时,我可以简单地:

pflags.Flag有一个名为 的字段Value,其类型为pflags.Value,如下所示:

如果我进入调试器并像这样获取值:

我看到 this 的运行时类型是*github.com/spf13/pflag.uint64Value,但由于这是私有类型,我似乎无法转换该值:

我怎样才能转换或使用其他方法来解决这个Value问题uint64