如何解决将字段值从一种类型复制到列表中另一种类型的实例
假设我有 2 个结构体:
type Contract struct {
Id string `json:"id" gorm:"column:uuid"`
Name string `json:"name" gorm:"column:name"`
Description string `json:"descr" gorm:"column:descr"`
ContractTypeId int `json:"contract_type_id" gorm:"column:contract_type_id"`
}
type ContractModel struct {
Id string `json:"id" gorm:"column:uuid"`
Name string `json:"name" gorm:"column:name"`
Description string `json:"descr" gorm:"column:descr"`
}
当我运行 SQL 查询并将结果扫描到 Contract
类型时,我已经使用 ContractModel
包成功地将值映射到 go-automapper
。
var contractModel ContractModel
automapper.Map(contract,&contractModel)
现在,假设我返回了一个 contracts
数组。
如何自动映射数组中的所有值,即
var contractModels []ContractModel
automapper.Map(contracts,&contractModels)
我知道这没有意义。我是 Golang 的新手,不确定要使用哪种映射语法。
编辑:
这看起来正确吗?
var contractModels []domain.ContractModel
for i := 0; i < len(contracts); i++ {
var contractModel domain.ContractModel
automapper.Map(contracts,&contractModel)
contractModels = append(contractModels,contractModel)
}
我遇到的问题是 Invalid argument for len
。
解决方法
创建目标值的一部分。循环遍历源值并根据需要将字段分配给目标值。
contractModels := make([]ContractModel,len(contracts))
for i,v := range contracts {
contractModels[i] = ContractModel{Id: v.Id,Name: v.Name,Description: v.Description}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。