我正在维护一些使用 Go (golang)、Viper和Cobra编写的代码。
在一条线上,它具有:
rootCmd.PersistentFlags().String("cfg", "", "A description")
然后在下一行它有
rootCmd.PersistentFlags().StringP("output", "o", ".", "Another description")
String
在这种情况下和有什么区别StringP
?
查看各种教程中的示例用法,似乎有各种方法的版本P
和非P
版本,例如StringVarP
和StringVar
。
这些版本有什么区别?的意义P
何在?
有没有办法可以判断给定方法是否有P
对应P
物?
搜索引擎倾向于将我带到 cobra 或 viper 教程页面,它们使用这些方法而不解释P
或不P
对应。
我发现一些材料pflags
表明它可能与参数是否具有短(一个字母)形式有关。会是这样吗?
编辑后说明:收到此问题的答案后,spf13/pflag
上述golang框架似乎确实在后台使用了它。但是,在使用 cobra 或 viper 时是否应该查看 pflags 文档并不清楚。
由于这是一个问答网站,我已经恢复了一个编辑,该编辑删除了我在寻找这个答案时输入的许多关键字,因为我觉得其他寻找相同信息的人会以这种方式得到更好的服务。