如果在Go中未设置环境变量,如何分配默认值?
在Python中mongo_password = os.getenv('MONGO_PASS', 'pass'),pass如果MONGO_PASS未设置env var,我可以在哪里设置默认值。
mongo_password = os.getenv('MONGO_PASS', 'pass')
pass
MONGO_PASS
我尝试了基于os.Getenv空的if语句,但是由于if语句中变量赋值的范围,这似乎不起作用。而且我正在检查多个env var,因此无法在if语句中对这些信息进行操作。
os.Getenv
没有内置功能可以还原为默认值,因此您必须执行良好的老式if-else。
但是,您始终可以创建一个辅助函数来简化此工作:
func getenv(key, fallback string) string { value := os.Getenv(key) if len(value) == 0 { return fallback } return value }
请注意,正如@ michael-hausenblas在评论中指出的那样,请记住,如果环境变量的值确实为空,则将获得后备值。
如@ŁukaszWojciechowski所指出的,甚至更好,使用os.LookupEnv:
os.LookupEnv
func getEnv(key, fallback string) string { if value, ok := os.LookupEnv(key); ok { return value } return fallback }