go语言中的BeanUtil.copyProperties

283 阅读1分钟

作为一位java程序员,go语言初学者 因为工作原因开始使用go语言,在日常开发中会经常用到下面的情况

type User1 struct {  
UserName string  
Age int  
}  
  
type User2 struct {  
UserName string  
Pass string  
}


var user1 = User1{UserName: "ysh", Age: 21}
var user2 User2

对于两个不同的结构体,如果我想把user1里面与user2相同的字段进行赋值的时候,在没有使用copier的时候会采用下面的方式

user2.UserName=user1.UserName

但是字段一多会非常麻烦,在java中可以使用BeanUtil.copyProperties,后来我在go语言中发现可以使用copier来解决此问题

import (  
"github.com/jinzhu/copier"  
)

err := copier.Copy(&user2, &user1)  
if err != nil {  
fmt.Println(err)  
}

fmt.Println(user2)

输出结果为{ysh }