go - 当第二个结构使用字段子集时,将结构列表转换为另一个结构的列表
问题描述
我有两个结构,Foo
和Bar
. Bar
使用Foo
字段的子集:
type Foo struct {
Id string
Name string
Extra string
}
type Bar struct {
Id string
Name string
}
我想将Foo
s转换为Bar
s。我目前正在这样做:
bars := []Bar
for _, foo = range foos {
bars = append(
bars,
Bar{Id: foo.Id, Name: foo.name}
)
}
在 Go 中有没有更好的方法来做到这一点?
解决方案
你可以嵌入 Bar
到Foo
.
type Foo struct {
Bar
Extra string
}
type Bar struct {
Id string
Name string
}
var bars []Bar
for _, foo = range foos {
bars = append(bars, foo.Bar)
}
推荐阅读
- cypress - 赛普拉斯 - 每次 url 更改时写入文件
- docker - Supervisord 不会同时向所有进程发送信号
- vue.js - Vue.js 在带有动态 html 的新选项卡中打开链接
- sql - SQL 层次结构 - 多级 - 将每一级转换为列
- asp.net - 将一个 DTO 的参数分配给另一个
- logstash - Logstash - 针对 CIDR 的 IP
- python - Python中的XLXS文件太大
- docker - 无法在 docker 容器中的 Python Alpine 上安装 OpenCV
- github - 克隆 GitHub 存储库时出错 - 使用现有参考调用初始参考事务
- flutter - Flutter中的flutter build bundle和appbundle有什么区别?