如果在 Go 中未设置环境变量,如何分配默认值?
在 Python 中mongo_password = os.getenv('MONGO_PASS', 'pass'),pass如果MONGO_PASS未设置 env var,我可以执行where是默认值。
mongo_password = os.getenv('MONGO_PASS', 'pass')
pass
MONGO_PASS
我尝试了一个基于os.Getenv空的 if 语句,但由于 if 语句中变量赋值的范围,这似乎不起作用。而且我正在检查多个环境变量,所以我无法在 if 语句中对这些信息采取行动。
os.Getenv
没有内置的回退到默认值,所以你必须做一个很好的老式 if-else。
但是你总是可以创建一个辅助函数来简化它:
func getenv(key, fallback string) string { value := os.Getenv(key) if len(value) == 0 { return fallback } return value }
请注意,正如评论中指出的那样,请记住,如果环境变量的值真的为空,您将获得回退值。
正如ee指出的那样更好,使用os.LookupEnv:
os.LookupEnv
func getEnv(key, fallback string) string { if value, ok := os.LookupEnv(key); ok { return value } return fallback }