如果是普通的结构体,遍历 numField 根据 Field(i).Name 修改就可以了
但是如果遇到嵌套结构体怎么办
例如
type A struct {
field1 string
...
B
}
type B struct {
field2 string
}
如何修改修改 field2 的值呢?
1
notamail 2021-01-14 17:35:02 +08:00
1. 你这并不是嵌套结构体。。。
2. 这种结构可以考虑用 map 来处理 |
2
joesonw 2021-01-14 17:42:26 +08:00
1. 私有变量改不了的.
2. struct 也是修改不了, 要 *B type A struct { Field1 string *B } type B struct { Field2 string } func main() { a := A{B: &B{Field2: "123"}} println(a.B.Field2) v := reflect.ValueOf(&a) v.Elem().FieldByName("B").Elem().FieldByName("Field2").Set(reflect.ValueOf("456")) println(a.B.Field2) } https://play.golang.org/p/dJ5sWunyVby |