type User struct{
UserId string
Name string
}
func TestReflectStructPtr(){
var (
model *User
st reflect.Type
elem reflect.Value
}
st=reflect.Type(model) //获取结构体指针类 *User
st=st.Elem() //使st = 其指向的结构体类型,类似指针的解引用
elem=reflect.New(st) //reflect.New()返回的是一个Value类型值,该值持有一个 指向类型为typ的新申请的零值的指针
//model就是创建的user结构体变量(实例)
model=elem.Interface{}.(*User) //model的类型是*User,其指向与elem一致,操作elem与操作model结果一样
elem=elem.Elem() // 取得elem指向的值,即elem=结构体变量(实例):一个空结构体变量
elem.FieldByName("UserId").SetString("123456789") //赋值
elem.FieldByName("Name").SetString("nickname")