gpt4 book ai didi

go - 使用 Go (golang)、cobra 和 viper 时,StringVar 与 StringVarP 或 String 与 StringP 之间有什么区别?

转载 作者:行者123 更新时间:2023-12-01 20:25:54 26 4
gpt4 key购买 nike

我正在维护一些使用 Go (golang) 编写的代码,ViperCobra .
一方面,它有:

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

最佳答案

P后缀表示一个函数除了全名之外还接受单个字母标志名,如 usage 中所述pflag 文档的部分:

The pflag package also defines some new functions that are not inflag, that give one-letter shorthands for flags. You can use these byappending 'P' to the name of any function that defines a flag.


回答您的个人问题:
  • 有什么区别:P函数需要一个额外的参数:单个字母名称。这个短标志可以与单个 - 一起使用.
  • 哪些方法有 P对应:所有这些,如pflag reference中所示

  • 至于为什么这被记录在 pflag 中而不是毒蛇或眼镜蛇,这是因为 vipercobra使用 pflag 库。

    关于go - 使用 Go (golang)、cobra 和 viper 时,StringVar 与 StringVarP 或 String 与 StringP 之间有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63341006/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com