1 简介

copier库能处理不同类型之间的赋值。除此之外,copier还能:

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

    go get github.com/jinzhu/copier

2 快速使用

  1. package main
  2. import (
  3. "fmt"
  4. "github.com/jinzhu/copier"
  5. )
  6. type User struct {
  7. Name string
  8. Age int
  9. }
  10. type Employee struct {
  11. Name string
  12. Age int
  13. Role string
  14. }
  15. func main() {
  16. user := User{Name: "dj", Age: 18}
  17. employee := Employee{}
  18. // 将user对象中的字段赋值到employee的同名字段中。如果目标对象中没有同名的字段,则该字段被忽略。
  19. copier.Copy(&employee, &user)
  20. fmt.Printf("%#v\n", employee)
  21. }

3