gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 22:17:30 26 4
gpt4 key购买 nike

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

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com