CopierGolang 复制版
Copier 是 Golang 的复制版,它从一个结构复制到了另一个结构。它具有以下特点:
-
如果名字匹配,就从一个场景复制到另一个场景
-
如果方法名和场景名匹配,就从方法复制到场景
-
如果场景名和方法名匹配,就从场景复制到方法
-
从片复制到片
-
从结构复制到片
示例代码:
import . "github.com/jinzhu/copier" type User struct { Name string Role string Age int32} func (user *User) DoubleAge() int32 { return 2 * user.Age} type Employee struct { Name string Age int32 DoubleAge int32 EmployeId int64 SuperRule string}func (employee *Employee) Role(role string) { employee.SuperRule = "Super " + role } user := User{Name: "Jinzhu", Age: 18, Role: "Admin"} employee := Employee{}Copy(&employee, &user) // employee => Employee{ Name: "Jinzhu", // Copy from field // Age: 18, // Copy from field // DoubleAge: 36, // Copy from method // EmployeeId: 0, // Just ignored // SuperRule: "Super Admin", // Copy to method // } // Copy struct to slice user := User{Name: "hello", Age: 18, Role: "User"} employees := []Employee{}Copy(&employees, &user) // employees => [{hello 18 0 36 Super User}] // Copy slice to sliceusers := []User{{Name: "Jinzhu", Age: 18, Role: "Admin"}, {Name: "jinzhu 2", Age: 30, Role: "Dev"}} employees := []Employee{}Copy(&employees, &users) // employees => [{hello 18 0 36 Super User} {Jinzhu 18 0 36 Super Admin} {jinzhu 2 30 0 60 Super Dev}]
评论
金庸群侠传3D重制版
金庸群侠传3D重制版是一个回合制战棋战斗开放世界RPG游戏。它是一个非盈利游戏项目,项目目标为重制经典游戏《金庸群侠传》(在线玩DOS原版)并支持后续一系列MOD和二次开发。你可以在PC、MAC或移动
金庸群侠传3D重制版
0
MagentoCMagento中文定制版
Magento中文版项目介绍Magento是近年来新兴的一款购物车系统。它灵活的系统架构赢得了全世界开发者的青睐。为了使Magento能够更好的在国内推广和发展,决定制作Magento的中文发行版。目
MagentoCMagento中文定制版
0
jenkins-zhJenkins 中国定制版
目前定制版发行包括有:Docker镜像、jenkins.war文件。所有的Jenkins定制版本都包括如下的特性:配置有部署在中国的代理更新中心(updatecenter)简体中文插件镜像 使用命令如
jenkins-zhJenkins 中国定制版
0
标的 | 复盘
灵感是创作的一切源头,只要灵感不断,那么创作就存在内容来源。所以想尽方法获取灵感,储存灵感,转换灵感,沉淀灵感便是一套简单的思维模型。证券市场犹如江湖,市场参与者鱼龙混杂,良莠不齐。 也正因为如此的环...
石小懒
0
思维 | 复盘
这次二次阳,实属难熬,断断续续输液8天,低烧、咳嗽症状才慢慢好转。与上次相比,这次阳性症状表现最为顽固的是:高烧和低烧反复,咳嗽时间较长,疲惫无力感非常强。本篇文章按照计划理应5月21日完成,实属脑袋无法...
石小懒
0