如果在 Go 未设置环境变量,如何分配默认值?' T, F2 e( E* F! N
在 Python 中mongo_password = os.getenv('MONGO_PASS','pass'),pass如果MONGO_PASS未设置 env var,我可以执行where是默认值。& q f6 J* ~5 R
我尝试了一个基础os.Getenv空的 if 句子,但因为 if 句子中变量赋值的范围似乎不起作用。我正在检查多个环境变量,所以我不能在 if 在句子中采取行动。) X q+ o. y1 w' V# k E. W2 F
& [- P! r' e* l# ^ 解决方案: $ c. t x0 B" z9 i7 G
没有内置回归到默认值,所以你必须做一个好的老式 if-else。. }( b9 h& W# I' z7 _- ~0 V
但你总能创建一个辅助函数来简化它:1 H/ v- k8 ~' x% d
func getenv(key,fallback string) string { value := os.Getenv(key) if len(value) == 0 { return fallback } return value} ; r* M. z" k- _3 I; p- j
请注意,正如评论所指出的,请记住,如果环境变量值真的为空,您将获得回退值。( A# f4 A& C. I% J( N$ w
正如ee指出更好,使用更好os.LookupEnv: 2 h- A" V7 o! z
func getEnv(key,fallback string) string if value,ok := os.LookupEnv(key); ok return value } return fallback} $ C. o4 b8 Q7 L$ k& g1 P