当前位置: 首页 > news >正文

golang使用 copier对象复制时进行类型转化

问题描述

在后端我们经常会在 entity 和 view 之间进行复制转换为可以发送给前端的数据

比如 time 对象在下送的时候,我们希望能显示经过格式化过的目标字符串格式,这里我们可以使用自定义的 converter,主要是定义 src 和 dst 类型,以及实现转换方法。

然后在复制的时候带上自定义 converter 即可,极大的提高了转换复制的效率。

func main() {var (user = User{Name: "Jinzhu", Age: 18, Role: "Admin", Salary: 200000, CreateAt: time.Now()}//users     = []User{{Name: "Jinzhu", Age: 18, Role: "Admin", Salary: 100000}, {Name: "jinzhu 2", Age: 30, Role: "Dev", Salary: 60000}}employee = Employee{Salary: 150000}//employees = []Employee{})converter := copier.TypeConverter{SrcType: time.Time{},DstType: copier.String,Fn: func(src interface{}) (dst interface{}, err error) {srcTime, ok := src.(time.Time)fmt.Println(srcTime)if !ok {return "", nil}return srcTime.Format(time.RFC3339), nil}}copier.CopyWithOption(&employee, &user, copier.Option{Converters: []copier.TypeConverter{converter}},)fmt.Printf("%#v \n", employee)}

http://www.lryc.cn/news/417421.html

相关文章:

  • 英特尔18A制程技术分析解读
  • 【百度面试算法题】2024-08-02
  • OSPF基础
  • leetcode 958.二叉树的完全性检验
  • Spring 中请求作用域的数据存储在 ThreadLocal 中还是 Spring 容器中?
  • 基础岛 - 8G显存验证书生·浦语大模型的Demo
  • Jangow靶机攻略
  • Vue项目通过宝塔部署之后,页面刷新后浏览器404页面
  • Java一一一简易图书管理系统
  • Ubuntu配置carla docker环境
  • 超越sd3!比肩Midjourney-v6?AI绘画大模型FLUX1.0详细评测与本地部署方法(附安装文件)
  • 帆软填报报表单元格根据其它单元格内容决定另外的单元格可筛选什么值
  • 一键浪漫的回忆:微软开源的修复工具!!【送源码】
  • 力扣-240.搜索二维矩阵(2)
  • Python推导式和生成器表达式
  • 比较支持向量机、AdaBoost、逻辑斯谛回归模型的学习策略与算法
  • Android顶部标题栏自定义,添加按钮
  • Spring Boot 整合 Dubbo3 + Nacos 2.4.0【进阶】+ 踩坑记录
  • 浙江省食品安全管理员题库及答案
  • C++ 几何算法 - 求两条直线交点
  • Linux操作系统简介
  • 【Python机器学习】回归——缩减系数来“理解”数据
  • 组件设计原则
  • 简单搭建vue项目
  • ctfhub Bypass disable_function
  • 【Qt】探索Qt网络编程:构建高效通信应用
  • 【Android Studio】原生应用部署第三方插件(探针)
  • 嵌入式学习之路 15(C语言基础学习——指针操作一维字符型数组)
  • C++ STL专题 list的底层实现
  • 【JavaEE】线程池