小编典典

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

go

如果在 Go 中未设置环境变量,如何分配默认值?

在 Python 中mongo_password = os.getenv('MONGO_PASS', 'pass')pass如果MONGO_PASS未设置 env var,我可以执行where是默认值。

我尝试了一个基于os.Getenv空的 if 语句,但由于 if 语句中变量赋值的范围,这似乎不起作用。而且我正在检查多个环境变量,所以我无法在 if 语句中对这些信息采取行动。


阅读 185

收藏
2021-12-14

共1个答案

小编典典

没有内置的回退到默认值,所以你必须做一个很好的老式 if-else。

但是你总是可以创建一个辅助函数来简化它:

func getenv(key, fallback string) string {
    value := os.Getenv(key)
    if len(value) == 0 {
        return fallback
    }
    return value
}

请注意,正如评论中指出的那样,请记住,如果环境变量的值真的为空,您将获得回退值。

正如ee指出的那样更好,使用os.LookupEnv

func getEnv(key, fallback string) string {
    if value, ok := os.LookupEnv(key); ok {
        return value
    }
    return fallback
}
2021-12-14