GO交流群:874512552
在学习go编程,反射修改结构体属性的值时,示例
package main
import(
"fmt"
"reflect"
)
type People struct{
age int
name string
}
func main(){
temp := People{age:20,name:"mark"}
fmt.Println(temp.age)
fmt.Println(temp.name)
s := reflect.ValueOf(&temp).Elem()
s.Field(0).SetInt(30)
fmt.Println(s)
fmt.Println(temp)
}
发生了以下错误,
原因:
在struct中的属性,严格区分首字母大小写,大写为公有属性,外面可以访问到,小写为私有,外面访问不到。
即修改为
package main
import(
"fmt"
"reflect"
)
type People struct{
Age int
Name string
}
func main(){
temp := People{Age:20,Name:"mark"}
fmt.Println(temp.Age)
fmt.Println(temp.Name)
s := reflect.ValueOf(&temp).Elem()
s.Field(0).SetInt(30)
fmt.Println(s)
fmt.Println(temp)
}
即可
---------------------
作者:Xiayan_ucas
来源:CSDN
原文:https://blog.csdn.net/Xiayan_ucas/article/details/80367812
版权声明:本文为博主原创文章,转载请附上博文链接!