golang Copier 数据复制
Copier 是一个用于在 Go 语言中复制或转换数据的库。它可以用来复制同样结构的数据类型,也可以在复制的同时进行一些转换。
以下是一个使用 Copier 进行数据复制的示例:
package main
import (
"fmt"
"github.com/jinzhu/copier"
)
type User struct {
Name string
Age int
}
type UserDTO struct {
Username string
UserAge int
}
func main() {
from := User{Name: "Jinzhu", Age: 18}
to := UserDTO{}
// 复制 from 到 to
copier.Copy(&to, &from)
fmt.Printf("Name: %v, Username: %v\n", to.Username, to.UserAge)
}
在这个例子中,我们定义了两个结构体 User
和 UserDTO
,它们的字段名称不完全一致。我们使用 copier.Copy
函数将一个 User
实例的内容复制到 UserDTO
实例中。由于字段名称不同,这个操作不会导致panic,而是会根据字段名称通过反射匹配并复制对应的数据。
运行这段代码,你会看到控制台输出 Username: 18, UserAge: 18
,这说明 Age
字段的值成功从 User
复制到了 UserDTO
的 UserAge
字段中。
评论已关闭