猿问

如何使用反射设置嵌套结构体字段值

我正在使用 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"`

}

我创建了一个嵌套结构。我想KitStatus在程序中使用 Case 结构更新字段。这意味着如果我从中访问 Case 结构,我如何移动到Kit_Details结构并更新结构的字段。有人可以帮助我如何循环使用 Case 结构的字段FieldByName("KitStatus")并使用它SetString("New value")来更新该字段的值。


GCT1015
浏览 99回答 1
1回答

小唯快跑啊

你可以这样使用:v := reflect.ValueOf(test)fmt.Println("Value of test before update", v)v.FieldByName("Kit_Details").Index(0).FieldByName("KitStatus").SetString("abcdsdf")您可以使用循环遍历所有元素并使用 更新它们Index()。
随时随地看视频慕课网APP

相关分类

Go
我要回答