go - 将值间接添加到嵌套结构
问题描述
我在 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`
}
直接当然是有效的:
categories:= Categories{}
Categories.A.Foo = "Salute"
间接作为伪代码:
categories:= Categories{}
Categories.["A"].Foo = "Salute"
直接解决当然没问题。有没有办法实现间接解决方案,我可以将嵌套对象作为参数放入其中?
解决方案
您可以使用反射(反射包)。
categories:= Categories{}
reflect.ValueOf(&categories).
Elem().
FieldByName("A").
FieldByName("Foo").SetString("Salute")
推荐阅读
- php - Mysql查询条件与或在php中
- r - R中的数据结构分组数据对
- android - MediaRecorder:在无效状态下恢复调用:1
- android - Kotlin Dokka - 加载包列表时出错
- javascript - 在 javascript 中构建 _msearch 查询
- visual-c++ - 我正在尝试制作一个计算器,但我不断收到错误消息(C3861 'add': identifier not found)
- scala - scala 中 cons 运算符的标识
- c# - Automapper 自定义地图使用“包含”来获取子项计数
- c# - Entity Framework 6.1.3 ASP.Net 异步数据库调用比同步慢得多
- reactjs - React JS API Json pull 设置布尔值以显示