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

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

Golang 的默認值模式

Golang 的默認值模式

Go
千萬里不及你 2023-05-04 16:03:56
我有這個:port := os.Getenv("huru_api_port") ||  ":8000"無法編譯,如果 huru_api_port 為空/未定義,Golang 不會將其識別為默認為“:8000”的語法。有沒有好的方法來做到這一點?在旁注中,為什么它是“:8000”而不是“8000”,例如:log.Fatal(http.ListenAndServe(":8000", router))
查看完整描述

3 回答

?
墨色風雨

TA貢獻1853條經驗 獲得超6個贊

os.LookupEnv將環境變量作為字符串和布爾值返回,指示變量是否已設置,因此您將獲得


v, ok = "something", true

// or, if the env var isn't set

v, ok = "", false

// or, if the env var is set but empty:

v, ok = "", true

像這樣使用它:


var port string

var ok bool

if port, ok = os.LookupEnv("huru_api_port"); !ok {

? ? port = ":8000"

}


查看完整回答
反對 回復 2023-05-04
?
拉風的咖菲貓

TA貢獻1995條經驗 獲得超2個贊

我會使用LookupEnv。boolean如果未設置變量,它會提供一個錯誤。

:8000意味著偵聽器將綁定到所有網絡接口。您可以認為它與127.0.0.1:8000which 僅綁定到環回接口不同。


查看完整回答
反對 回復 2023-05-04
?
慕森王

TA貢獻1777條經驗 獲得超3個贊

在 Go 中沒有簡單的速記方法來做到這一點,但對于您的情況,您可以改用它LookupEnv,它返回值(如果設置)和一個布爾值,指示是否在環境中找到密鑰:

https://golang.org/pkg/os/#LookupEnv


查看完整回答
反對 回復 2023-05-04
  • 3 回答
  • 0 關注
  • 198 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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