package main
import "fmt"
type myErr struct {}
func (*myErr)Error() string {
return "My err"
}
func main() {
var err error
err = do()
fmt.Println(err == nil) // 输出false
}
func do() *myErr {
return nil
}
上面代码err明明是nil,最终输出是false。
因为err带了类型,带了类型的err,被转成接口后,不再等于nil。
之前在gorm上面的事务里遇到了这个问题。