将值间接添加到嵌套结构

Posted

技术标签:

【中文标题】将值间接添加到嵌套结构【英文标题】:Add values indirect to nested struct 【发布时间】:2021-12-24 22:40:42 【问题描述】:

我在 Golang 中设置了一个嵌套结构,我想用间接值填充它。

type Categories struct 
    A ABCDE `json:"A"`
    B ABCDE `json:"B"`
    C ABCDE `json:"C"`
    D ABCDE `json:"D"`
    E ABCDE `json:"E"`


type ABCDE struct 
    Foo string `json:"foo`

Direct 当然可以:

categories:= Categories
Categories.A.Foo = "Salute"

间接作为伪代码:

categories:= Categories
Categories.["A"].Foo = "Salute"

直接解决当然没问题。有没有办法实现间接解决方案,我可以将嵌套对象作为参数放入其中?

【问题讨论】:

我认为它也有助于迭代类别对象。这可能吗? 使用反射。 您要解决的实际问题是什么?可能还有其他(更好的)解决方案可用。 【参考方案1】:

您可以使用反射 (reflect package)。

categories:= Categories
reflect.ValueOf(&categories).
    Elem().
    FieldByName("A").
    FieldByName("Foo").SetString("Salute")

PLAYGROUND

【讨论】:

以上是关于将值间接添加到嵌套结构的主要内容,如果未能解决你的问题,请参考以下文章

如何将值插入到python中的嵌套表中?

无法将值存储到 oracle 中的嵌套表中

循环 PHP 嵌套数组 - 将值提取到刀片视图中 (Laravel)

是否可以将所有阶段变量添加到嵌套 JSON 结构中的主体映射模板中?

我无法解析应用程序中 JSON 的嵌套类中的 mag 以及地点和时间,它们都将值显示为 null

React useContext 不会将值传递给深层嵌套的子级