2 回答

TA貢獻(xiàn)1966條經(jīng)驗(yàn) 獲得超4個(gè)贊
word
您為和標(biāo)志提供默認(rèn)值numb
,這意味著如果您不將它們作為 cli 參數(shù)提供,它們將獲得默認(rèn)值。
在flag.Parse()
你只測(cè)試 if wordPtr
is not empty 或numbPtr
is not0
之后,由于默認(rèn)值不是這些,測(cè)試將通過(guò)并且函數(shù)將被執(zhí)行。
如果您使用空字符串并0
作為默認(rèn)值:
flag.StringVar(&wordPtr, "word", "", "a string") flag.IntVar(&numbPtr, "numb", 0, "an int")
然后,如果您不提供這些作為 cli 參數(shù),您的測(cè)試將不會(huì)通過(guò):
.\logdata.exe -fork
將輸出:
fork: true
如果要測(cè)試是否word
或numb
作為 cli 參數(shù)提供,請(qǐng)參閱檢查 Go 中是否提供了標(biāo)志。

TA貢獻(xiàn)2021條經(jīng)驗(yàn) 獲得超8個(gè)贊
根據(jù)https://pkg.go.dev/flag#StringVar
StringVar 定義了一個(gè)帶有指定名稱、默認(rèn)值和使用字符串的字符串標(biāo)志。參數(shù) p 指向一個(gè)字符串變量,其中存儲(chǔ)標(biāo)志的值。
所以這意味著在你的情況下-"foo"
將是默認(rèn)值forwordPtr
和for 。42
numbPtr
false
forkPtr
- 2 回答
- 0 關(guān)注
- 138 瀏覽
添加回答
舉報(bào)