返回 nil 结构而不是空结构 go-gorm

sba*_*row 1 go go-gorm

具有以下模型:

type User struct {
    UUID string         `gorm:"primary_key"`
    Name string         `gorm:"NOT NULL"`
    CreatedAt time.Time
    UpdatedAt time.Time
}
Run Code Online (Sandbox Code Playgroud)

如果您使用 go-gorm 对不存在的用户执行以下查询:

var user User
db.First(&user)
Run Code Online (Sandbox Code Playgroud)

您最终会收到一个空结构,其中填充了日期字段。有没有办法只接收nil返回的结构,或者我是否以错误的方式思考这个问题?

nil*_*ket 6

在 gorm 中,您应该通过方法调用来检查记录是否为空:

if db.First(&user, 77).RecordNotFound() {
    log.Println("UUID:", 77, err)
}
Run Code Online (Sandbox Code Playgroud)