将值间接添加到嵌套结构
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
【讨论】:
以上是关于将值间接添加到嵌套结构的主要内容,如果未能解决你的问题,请参考以下文章
循环 PHP 嵌套数组 - 将值提取到刀片视图中 (Laravel)
是否可以将所有阶段变量添加到嵌套 JSON 结构中的主体映射模板中?