回答

收藏

如果 env var 为空,如何分配默认值?

技术问答 技术问答 326 人阅读 | 0 人回复 | 2023-09-12

如果在 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
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则