go启动报错:panic: runtime error: invalid memory address or nil pointer dereference

具体解释参考博文:
一个有关Golang变量作用域的坑

报错如下:
go启动报错:panic: runtime error: invalid memory address or nil pointer dereference_第1张图片
解决:
把下面的 DB, err := gorm.Open 中的冒号去掉就行了:
go启动报错:panic: runtime error: invalid memory address or nil pointer dereference_第2张图片
最初的理解是golang会定义新变量err,DB为初始定义的那个全局变量。但实际情况是,对于使用:=定义的变量,如果新变量DB与那个同名已定义变量 (这里就是那个全局变量DB)不在一个作用域中时,那么golang会新定义这个变量DB,遮盖住全局变量DB,这就是导致这个问题的真凶。

你可能感兴趣的:(Go)