Golang 复制版 Copier

码农软件 · 软件分类 · 常用工具包 · 2019-08-16 19:44:49

软件介绍

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}]

本文地址:https://codercto.com/soft/d/12515.html

Microsoft Windows程序设计

Microsoft Windows程序设计

佩措尔德 / 章立民 / 华中科技 / 2004-1 / 118.00元

Charles Petzold是全球最权威且知名的Windows程序设计专家,他将其最畅销Programming Microsoft Windows with C#一书加以改写,使之能完全适用于Visual Basic.NET的开发人员。这位畅销书的作家示范了如何使用Visual Basic.NET将Windows Forms的功能发挥到极致(Windows Forms是新一代的Windows程序......一起来看看 《Microsoft Windows程序设计》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具