回答

收藏

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

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

如果在 Go 未设置环境变量,如何分配默认值?
/ i, k- ]& d; U: m在 Python 中mongo_password = os.getenv('MONGO_PASS','pass'),pass如果MONGO_PASS未设置 env var,我可以执行where是默认值。
5 Z- |. t* {0 B5 b$ F我尝试了一个基础os.Getenv空的 if 句子,但因为 if 句子中变量赋值的范围似乎不起作用。我正在检查多个环境变量,所以我不能在 if 在句子中采取行动。
8 D$ N% q2 r( _7 Y5 a                                                                , N' r9 y' x) H) w
    解决方案:                                                                $ L: R1 \; Q# i4 o; D
                                                                没有内置回归到默认值,所以你必须做一个好的老式 if-else。
( L6 Y$ ^$ u0 W; y8 k但你总能创建一个辅助函数来简化它:
9 `5 }1 |& ~: ?
    func getenv(key,fallback string) string {    value := os.Getenv(key)    if len(value) == 0 {        return fallback   }    return value}
    0 e+ L) g' t& H1 L2 b+ T
请注意,正如评论所指出的,请记住,如果环境变量值真的为空,您将获得回退值。
3 d! \- u  Z$ m! J正如ee指出更好,使用更好os.LookupEnv:# o/ R( j" w/ B% V& \
    func getEnv(key,fallback string) string    if value,ok := os.LookupEnv(key); ok        return value   }    return fallback}
    / ?2 W3 ?$ W7 ~0 ?9 w7 d
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则