1 简介
copier库能处理不同类型之间的赋值。除此之外,copier还能:
- 调用同名方法为字段赋值
- 以源对象字段为参数调用目标对象的方法,从而为目标对象赋值(当然也可以做其它的任何事情)
- 将切片赋值给切片(可以是不同类型哦)
- 将结构体追加到切片中。
go get github.com/jinzhu/copier
2 快速使用
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{}
// 将user对象中的字段赋值到employee的同名字段中。如果目标对象中没有同名的字段,则该字段被忽略。
copier.Copy(&employee, &user)
fmt.Printf("%#v\n", employee)
}