我有一个这样的结构:

type User struct {
    Name   string
    UID    int
    Bio    string
}

我有一个给定的实例化结构,我想遍历该对象中的字段并逐个修改它们。

这是我到目前为止所拥有的

user := User{
    Name: "Test",
    UID:  1,
    Bio:  "Test bio",
}

reflectVal := reflect.ValueOf(user)
numFields := reflectVal.NumField()

for i := 0; i < numFields; i++ {
    fieldType := reflect.TypeOf(reflectVal.Field(i))
    reflectVal.Field(i).Set(reflect.Zero(fieldType))
    ...
}

但是我得到了这个错误:

panic: reflect: reflect.Value.Set using unaddressable value

有没有办法做到这一点?