首页 > 其他分享 >golang之copier

golang之copier

时间:2023-06-29 13:11:17浏览次数:28  
标签:Name Age copier golang employee string 赋值

今天我们要介绍的copier库就能处理不同类型之间的赋值。除此之外,copier还能:

  • 调用同名方法为字段赋值;
  • 以源对象字段为参数调用目标对象的方法,从而为目标对象赋值(当然也可以做其它的任何事情);
  • 将切片赋值给切片(可以是不同类型哦);
  • 将结构体追加到切片中。

快速使用

先安装:

$ go get github.com/jinzhu/copier

 

后使用:

package main

import (
  "fmt"

  "github.com/jinzhu/copier"
)

type User struct {
  Name string
  Age  int
}

type Employee struct {
  Name string
  Age  int
  Role string
}

func main() {
  user := User{Name: "dj", Age: 18}
  employee := Employee{}

  copier.Copy(&employee, &user)
  fmt.Printf("%#v\n", employee)
}

 

 

 

 

 

 

 

 

 

标签:Name,Age,copier,golang,employee,string,赋值
From: https://www.cnblogs.com/xingxia/p/golang_copier.html

相关文章

  • Golang 简单的数据对齐可提高程序速度和内存使用率
    序Golang中的结构或struct是用户定义的类型,允许将可能不同类型的项分组/组合为单一类型。可以说是一个不支持继承但支持组合的轻量级类。我们使用Golang编写代码的时候,你肯定使用过struct。但是,你可能不知道的是,通过简单地重新排序结构中的字段,可以极大地提高Go程序的......
  • golang之go-spew
    我们在使用Golang(Go语言)开发的过程中,会通过经常通过调试的方式查找问题的原因,解决问题,尤其是当遇到一个很棘手的问题的时候,就需要知道一段代码在执行的过程中,其上下文的变量对应的数据,以便进行推测出问题的原因。对于这类调试,我们用的比较多的一个是断点调试,还有是通过打印日志输......
  • Golang 使用FreeType-go进行字体
        FreeType库(http://www.freetype.org/)是一个完全免费(开源)的、高质量的且可移植的字体引擎,它提供统一的接口来访问多种字体格式文件,包括TrueType,OpenType,Type1,CID,CFF,WindowsFON/FNT,X11PCF等。支持单色位图、反走样位图的渲染。    freetype-go就是用g......
  • Golang空结构体struct{}的作用?
    介绍在平时做项目得时候,经常会看到很多包里面定义了结构体。e.g.在context包里面Context接口中的Done()方法,Done()返回一个是以空结构体定义数据的通道chanstruct{},那这里他是有什么特殊用意吗?我们接下来分析struct{}的作用。struct{}空结构是没有字段的结构类型。下面看示......
  • 精选Golang高频面试题和答案汇总
    大家好,我是阳哥。之前写的《GO必知必会面试题汇总》,已经阅读破万,收藏230+。也欢迎大家收藏、转发本文。这篇文章给大家整理了17道Go语言高频面试题和答案详解,每道题都给出了代码示例,方便大家更好的理解。1.并发安全性Go语言中的并发安全性是什么?如何确保并发安全性?解答:......
  • 36-golang动态创建类
    动态创建类(1.)使用反射创建类import`reflect`vartypeRegistry=make(map[string]reflect.Type)funcRegisterType(eleminterface{}){ t:=reflect.TypeOf(elem).Elem() typeRegistry[t.Name()]=t}funcNewStruct(namestring)(interface{},bool){ elem,ok......
  • golang使用core dump分析定位程序崩溃问题
     原创 萧瑟 golang面试经典讲解 2023-06-2319:05 发表于上海收录于合集#go语言6个#go6个##go工具15个一、前言coredump是一个包含着意外终止的程序其内存快照的文件。这个文件可以被用来事后调试(debugging)以了解为什么会发生崩溃,同时了解其中涉及到的变量。通......
  • golang入门,基础语法demo(1)
    packagemainimport"fmt"funcmain(){//声明变量varaint//使用var关键字声明变量a,类型为inta=1//赋值fmt.Println(a)//类型推导//使用:=自动推导类型并声明变量b,其类型为stringb:="helloworld"fmt.Pr......
  • GoLang图形用户界面编程实战(GUI编程)—fyne框架(三)
    fyne中文乱码的两种解决方法方法一(使用embed):embed是Go1.16新特性,以后会有专门的介绍。1、拷贝字体到项目目录项目根目录下新建resource目录,把字体文件拷贝到其中。2、在resource目录下新建resource_export.go文件。resource_export.go代码:packageresourceimport_"emb......
  • Golang中的参数传递
    Golang中的值传递和引用传递引言在编程领域中,Golang是一种强大而受欢迎的编程语言。它提供了丰富的功能和灵活性,使得开发者能够快速构建高效的应用程序。在Golang中,值传递和引用传递是非常重要的概念,对于理解程序的行为和优化代码至关重要。本文将深入探讨Golang中的值传递......