如何使用反射来设置嵌套的结构域值

苏瓦

我正在使用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 struct 来更新字段。这意味着如果我从中访问Case struct,我将如何移动到Kit_Detailsstruct并更新结构的字段。有人可以帮助我如何使用FieldByName("KitStatus")和使用SetString("New value")来更新Case struct的字段更新该字段的值。

Fahim Abrar:

您可以这样使用:

v := reflect.ValueOf(test)
fmt.Println("Value of test before update", v)
v.FieldByName("Kit_Details").Index(0).FieldByName("KitStatus").SetString("abcdsdf")

您可以使用循环遍历所有元素并使用进行更新Index()

去玩地面链接

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章