返回nil struct而不是空struct go-gorm

With the following model:

type User struct {
    UUID string         `gorm:"primary_key"`
    Name string         `gorm:"NOT NULL"`
    CreatedAt time.Time
    UpdatedAt time.Time
}

If you do the following query with go-gorm for a user that does NOT exist:

var user User
db.First(&user)

You end up receiving an empty struct with the date fields populated. Is there a way to instead just receive a nil struct back or am I thinking about this in the wrong way?

In gorm you are supposed to check if the record is empty, with a method call:

if db.First(&user, 77).RecordNotFound() {
    log.Println("UUID:", 77, err)
}

Add a Pointer function

func (user User) Pointer() *User {
    var t time.Time
    if user.UUID == "" && user.Name == "" && user.CreatedAt == t && user.UpdatedAt == t {
        return nil
    }
    return &user
}

and pass it

var user User
db.First(user.Pointer())