我正在使用Go创建一个嵌套结构并填充它。我在结构中有一个需要设置自己的自定义字段,但这是在外部结构的字段中使用的类型。例如:
type Case struct {
CaseID string `json:"caseID"`
CaseStatus string `json:"caseStatus"`
Kit_Details []Kit_Details `json:"kit_Details"`
}
type Kit_Details struct {
KitID string `json:"kitID"`
KitStatus string `json:"kitStatus"`
}
我创建了一个嵌套结构。我想在程序中使用Case结构更新
KitStatus
字段,这意味着如果我从中访问Case结构,如何移动到Kit_Details
结构并更新结构的字段。有人可以帮助我如何使用
FieldByName("KitStatus")
和使用SetString("New value")
遍历Case结构的字段来更新该字段的值。
最佳答案
您可以这样使用:
v := reflect.ValueOf(test)
fmt.Println("Value of test before update", v)
v.FieldByName("Kit_Details").Index(0).FieldByName("KitStatus").SetString("abcdsdf")
您可以使用循环遍历所有元素,并使用
Index()
更新它们。Go play ground link
关于go - 如何使用反射来设置嵌套的结构域值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58608027/