回答

收藏

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

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

如果在 Go 未设置环境变量,如何分配默认值?
/ Y7 ?+ T( H( z8 k* M  P- S在 Python 中mongo_password = os.getenv('MONGO_PASS','pass'),pass如果MONGO_PASS未设置 env var,我可以执行where是默认值。( k% i' k- B3 S
我尝试了一个基础os.Getenv空的 if 句子,但因为 if 句子中变量赋值的范围似乎不起作用。我正在检查多个环境变量,所以我不能在 if 在句子中采取行动。8 X8 e0 @& \/ h' j' W% ]0 B- @+ x
                                                                9 D- E7 |- {- a. a# c
    解决方案:                                                                0 b5 M9 n" T$ b( {
                                                                没有内置回归到默认值,所以你必须做一个好的老式 if-else。% }9 O* w' \# b* {/ ]3 }8 c
但你总能创建一个辅助函数来简化它:: c: k3 k& h! v- w4 ?4 W! B
    func getenv(key,fallback string) string {    value := os.Getenv(key)    if len(value) == 0 {        return fallback   }    return value}
    - h; Q6 q; {2 ~# d" O7 q) c- Z
请注意,正如评论所指出的,请记住,如果环境变量值真的为空,您将获得回退值。
, q2 ^/ C' O4 O$ P, ]- y* R正如ee指出更好,使用更好os.LookupEnv:
  ]* ^7 m- E) [! r- b5 h" A
    func getEnv(key,fallback string) string    if value,ok := os.LookupEnv(key); ok        return value   }    return fallback}; a3 m+ F1 G: ^8 b7 D0 ~
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则