type Client struct {
Id int
Age int
PrimaryContact Contact
Name string
}
type Contact struct {
Id int
ClientId int
IsPrimary bool
Email string
}
上面是一段示例代码;我要实现的是以下内容: - 使用反射循环遍历所有Client结构体字段 - 对于每个“基本”字段,使用反射设置默认值 - 对于每个结构体字段,使用递归应用上述步骤
问题在于,当对PrimaryContact字段进行内省并尝试为其任何字段设置值时,会出现以下恐慌:
reflect.Value.Set使用不可寻址的值
如果我没有弄错的话,原因是PrimaryContact是按值传递而不是按引用传递,因此当我调用其任何字段的Set方法时,它会更改副本上的字段值,而不是实际参数上的字段值。如何解决这个问题?如何使用反射将PrimaryContact字段按引用传递给我的方法?