type student struct {
id int
name string
age string
}
func Inform(){
var ss student
ss.id = 1
ss.name = "小小"
ss.age = 18
StudentData(&ss) // 这里面传的是地址
fmt.Println("ss:",ss)
}
func StudentData(params interface{}){
// 1:怎么通过反射获取外部传进来的结构体中的成员地址
// 2:通过反射修改的结构体中成员的值
}
查了一晚上,如果不是结构体只是普通的变量如int之类的,那传入地址给interface后,通过反射修改值可以实现了,但是换成结构体传入地址后怎么试都不行,蒙了……
有疑问加站长微信联系(非本文作者)

需要先Elem然后才能修改
其实是我结构体成员没有大写,尴尬了
不用大写也可以,用unsafe
导不导出没多大关系,直接按 地址+ 偏移 就可以修改的,不过一不注意就会程序崩溃
小写的 reflect只能读不能写,得用unsafe