我正在維護(hù)一些使用 Go (golang)、Viper和Cobra編寫的代碼。在一條線上,它具有:rootCmd.PersistentFlags().String("cfg", "", "A description")然后在下一行它有rootCmd.PersistentFlags().StringP("output", "o", ".", "Another description")String在這種情況下和有什么區(qū)別StringP?查看各種教程中的示例用法,似乎有各種方法的版本P和非P版本,例如StringVarP和StringVar。這些版本有什么區(qū)別?的意義P何在?有沒(méi)有辦法可以判斷給定方法是否有P對(duì)應(yīng)P物?搜索引擎傾向于將我?guī)У?cobra 或 viper 教程頁(yè)面,它們使用這些方法而不解釋P或不P對(duì)應(yīng)。我發(fā)現(xiàn)一些材料pflags表明它可能與參數(shù)是否具有短(一個(gè)字母)形式有關(guān)。會(huì)是這樣嗎?編輯后說(shuō)明:收到此問(wèn)題的答案后,spf13/pflag上述golang框架似乎確實(shí)在后臺(tái)使用了它。但是,在使用 cobra 或 viper 時(shí)是否應(yīng)該查看 pflags 文檔并不清楚。由于這是一個(gè)問(wèn)答網(wǎng)站,我已經(jīng)恢復(fù)了一個(gè)編輯,該編輯刪除了我在尋找這個(gè)答案時(shí)輸入的許多關(guān)鍵字,因?yàn)槲矣X(jué)得其他尋找相同信息的人會(huì)以這種方式得到更好的服務(wù)。
1 回答

拉風(fēng)的咖菲貓
TA貢獻(xiàn)1995條經(jīng)驗(yàn) 獲得超2個(gè)贊
P
后綴表示除全名外還接受單個(gè)字母標(biāo)志名稱的函數(shù),如 pflag 文檔的使用部分所述:
pflag 包還定義了一些不在 flag 中的新函數(shù),它們?yōu)闃?biāo)志提供單字母簡(jiǎn)寫。您可以通過(guò)將“P”附加到任何定義標(biāo)志的函數(shù)的名稱來(lái)使用它們。
要回答您的個(gè)人問(wèn)題:
有什么區(qū)別:
P
函數(shù)需要一個(gè)額外的參數(shù):?jiǎn)巫帜该Q。這個(gè)短標(biāo)志可以與單個(gè)-
.哪些方法有
P
對(duì)應(yīng)物:所有方法,如pflag 參考中所示
至于為什么這被記錄在 pflag 而不是 viper 或 cobra 中,這是因?yàn)?a >viper和cobra都使用 pflag 庫(kù)。
- 1 回答
- 0 關(guān)注
- 290 瀏覽
添加回答
舉報(bào)
0/150
提交
取消