在Golang中将值从一个结构复制到另一个

时间:2018-12-05 08:50:25

标签: go struct

我有两个结构:

type UpdateableUser struct {
    FirstName string
    LastName string
    Email string
    Tlm float64
    Dob time.Time
}

type User struct {
    Id string
    FirstName string
    LastName string
    Email string
    DOB time.Time
    Tlm float64
    created time.Time
    updated time.Time
}

通过绑定器,我将请求数据绑定到updateableUser结构,因此我可能有一个updateableUser仅具有一个“真实”值,如uu此处:

uu := UpdateableUser{Lastname: "Smith"}

现在,我只想将UpdateableUser中的非“ emtpy”值设置为User。你能给我一个提示或更多吗?

1 个答案:

答案 0 :(得分:1)

我建议将Updateable结构嵌入到较大的结构中:

DISPLAY_NAME

这允许您使用type UpdateableUser struct { FirstName string LastName string Email string Tlm float64 Dob time.Time } type User struct { UpdateableUser ID string created time.Time updated time.Time } func (u *User) UpdateFrom(src *UpdateableUser) { if src.FirstName != "" { u.FirstName = src.FirstName } if src.LastName != "" { u.LastName = src.LastName } // ... And other properties. Tedious, but simple and avoids Reflection } 作为界面,以明确显示可以更新的属性。