go - 循环结构体,修改结构体中某个字段的值

循环结构体,修改结构体中某个字段的值

背景:使用go获取部门列表后,需要修改其中的一个字段的值,将level = 2 修改为 level = “二级部门”

错误方法1:结构体转json后,不行

for _, item := range departments {
	item.Level = "二级部门
}

错误方法2:通过反射,普通的可以,结构体转json后不行

for _, item := range departments {
	level := reflect.ValueOf(&item.Level)
	level.Elem().SetString("二级部门")
}

正确方法:通过index去修改

for index, _ := range departments {
	departments[index].Level = "二级部门"
}
posted @ 2022-04-05 14:17  alisleepy  阅读(480)  评论(0编辑  收藏  举报