第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

有沒有辦法確定使用 `flag.VisitAll` 時是否設(shè)置了標(biāo)志?

有沒有辦法確定使用 `flag.VisitAll` 時是否設(shè)置了標(biāo)志?

Go
ITMISS 2023-04-24 16:43:48
我正在使用 go 的原生"flag"包。它內(nèi)置了訪問所有當(dāng)前定義的標(biāo)志的能力,使用flag.VisitAll.我正在嘗試構(gòu)建一個片段,該片段試圖從環(huán)境變量中獲取該標(biāo)志的值(如果存在)并且以防未設(shè)置該標(biāo)志,并且我找不到確定是否設(shè)置了特定標(biāo)志的方法或不。有沒有辦法在不實(shí)現(xiàn)新參數(shù)類型的情況下實(shí)現(xiàn)這一目標(biāo)?
查看完整描述

2 回答

?
嗶嗶one

TA貢獻(xiàn)1854條經(jīng)驗(yàn) 獲得超8個贊

使用flag.VisitAll聲音有點(diǎn)復(fù)雜;我建議獲取具有合理默認(rèn)值的環(huán)境變量并將其用作標(biāo)志的默認(rèn)值 - 這意味著如果未設(shè)置標(biāo)志,環(huán)境變量將成為后備:


package main


import (

? ? "flag"

? ? "fmt"

? ? "os"

)


func GetEnvDefault(key, def string) string {

? ? v := os.Getenv(key)


? ? if v == "" {

? ? ? ? return def

? ? }


? ? return v

}


func main() {

? ? // Uncomment to test behaviour

? ? // os.Setenv("SERVER_NAME", "donaldduck")


? ? var serverName string


? ? flag.StringVar(&serverName, "n", GetEnvDefault("SERVER_NAME", "mickeymouse"), "The human name for the server")

? ? flag.Parse()


? ? fmt.Println(serverName)

}


查看完整回答
反對 回復(fù) 2023-04-24
?
慕哥6287543

TA貢獻(xiàn)1831條經(jīng)驗(yàn) 獲得超10個贊

沒有遍歷未設(shè)置的命令行標(biāo)志的功能。VisitAll但是,可以通過取和返回的標(biāo)志之間的差異來實(shí)現(xiàn)此功能Visit;前者遍歷所有標(biāo)志,而后者遍歷設(shè)置的標(biāo)志:


func UnsetFlags(fs *flag.FlagSet) []*flag.Flag {

? ? var unset []*flag.Flag

? ? fs.VisitAll(func(f *flag.Flag) {

? ? ? ? unset = append(unset, f)

? ? })

? ? fs.Visit(func(f *flag.Flag) {

? ? ? ? for i, h := range unset {

? ? ? ? ? ? if f == h {

? ? ? ? ? ? ? ? unset = append(unset[:i], unset[i+1:]...)

? ? ? ? ? ? }

? ? ? ? }

? ? })

? ? return unset

}

您可以在調(diào)用后使用該函數(shù)flag.Parse將任何未設(shè)置的標(biāo)志設(shè)置為其環(huán)境值:


for _, f := range UnsetFlags(flag.CommandLine) {

? ? v := os.Getenv(f.Name)

? ? f.Value.Set(v)

}


查看完整回答
反對 回復(fù) 2023-04-24
  • 2 回答
  • 0 關(guān)注
  • 151 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號