亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何獲取用戶在我的 CLI 中選擇的標志

如何獲取用戶在我的 CLI 中選擇的標志

Go
回首憶惘然 2022-08-01 16:34:46
我已經指定了一些標志,如下所示:deleteCmd.Flags().StringVarP(&option, "wallet", "w", "", "Specify the wallet to be deleted")deleteCmd.Flags().StringVarP(&option, "holding", "o", "", "Specify the holding to be deleted")deleteCmd.Flags().StringVarP(&option, "ticker", "t", "", "Specify the ticker to be deleted")deleteCmd.Flags().StringVarP(&option, "tag", "g", "", "Specify the tag to be deleted")一旦我使用這些來知道在使用我的API時要刪除的內容,有沒有辦法獲取我的用戶選擇的標志值?
查看完整描述

1 回答

?
慕桂英546537

TA貢獻1848條經驗 獲得超10個贊

這個解決方案有非常糟糕的設計...你不知道這些標志的順序。


問題

我假設你正在使用.因此,當您閱讀文檔時,您將找不到如何評估標志的任何部分。因此,有時它被稱為未定義的行為,它可能會起作用,但如果將來它可能會改變。cobra


讓我們分析一下您的示例:


deleteCmd.Flags().StringVarP(&option, "wallet", "w", "", "Specify the wallet to be deleted")

deleteCmd.Flags().StringVarP(&option, "holding", "o", "", "Specify the holding to be deleted")

deleteCmd.Flags().StringVarP(&option, "ticker", "t", "", "Specify the ticker to be deleted")

deleteCmd.Flags().StringVarP(&option, "tag", "g", "", "Specify the tag to be deleted")

您有以下標志:。我們可以假設順序是你把它放在代碼中的方式。假設潛在行為:wallet, holding, ticker, tag


用戶放置標志。所有標志的默認值均為空。因此,該變量有一個空值,該值來自標志。tickeroptiontag


解決方案

應為每個標志使用分隔變量。您應該實現您的邏輯來覆蓋該部分,以確定放置了哪個標志。


deleteCmd.Flags().StringVarP(&wallet, "wallet", "w", "", "Specify the wallet to be deleted")

deleteCmd.Flags().StringVarP(&holding, "holding", "o", "", "Specify the holding to be deleted")

deleteCmd.Flags().StringVarP(&ticker, "ticker", "t", "", "Specify the ticker to be deleted")

deleteCmd.Flags().StringVarP(&tag, "tag", "g", "", "Specify the tag to be deleted")


if wallet != "" {

    option = wallet

    selected = "wallet"

} else if holding != "" {

    option = holding

    selected = "holding"

} else ...

...

...


查看完整回答
反對 回復 2022-08-01
  • 1 回答
  • 0 關注
  • 134 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號