Go代码
相同的两个Struct 复制值
import "reflect"
func main() {
type User struct {
Id int `json:"id"`
Name string `json:"name"`
Adr string `json:"adr"`
}
type Maser struct {
Id int `json:"id"`
Name string `json:"name"`
Adr string `json:"adr"`
}
var u User
var s Maser
u.Id = 1234
u.Name = "testu"
u.Adr = "adr"
dv := reflect.ValueOf(&s).Elem()
sv := reflect.ValueOf(u)
st := reflect.TypeOf(u)
for i := 0; i < sv.NumField(); i++ {
//fmt.Printf("Field %d: %v => %v\n", i, st.Field(i).Name, sv.Field(i))
nk := st.Field(i).Name
nv := sv.Field(i)
dv.FieldByName(nk).Set(nv)
}
fmt.Println(s)
}