请指出以下go代码的问题并修正:package confconst env = devvar devConf = mapstringinterface port 8080var prodConf = mapstringinterface port 80var Conf = env == devprodConfdevConf
package conf
const env = "dev"
var devConf = map[string]interface{}{ "port": 8080, }
var prodConf = map[string]interface{}{ "port": 80, }
var Conf = prodConf
func init() { if env == "dev" { Conf = devConf } }
修正:
- 将
prodConf和devConf的变量名调换,因为Conf的默认值应该是prodConf,而不是devConf。 - 将判断逻辑放到
init()函数中,这样Conf的值只会在程序启动时被设置一次。如果将Conf的值作为全局变量,在运行时修改env的值将不会改变Conf的值,这可能会导致程序出现错误或者不符合预期的行为。
原文地址: http://www.cveoy.top/t/topic/GBZ 著作权归作者所有。请勿转载和采集!