Golang:Mergo一个struct、map合并库
【摘要】
Mergo: merging Go structs and maps since 2013
译文:Mergo:自2013年起合并Go structs 和 maps
文档
pkg.go ht...
Mergo: merging Go structs and maps since 2013
译文:Mergo:自2013年起合并Go structs 和 maps
文档
安装
go get github.com/imdario/mergo
- 1
示例
package main
import (
"fmt"
"github.com/imdario/mergo"
)
type Student struct {
Name string
Age int
// 小写的
email string
}
// struct 转 map
func structToMap() {
student := Student{
Name: "Tom",
Age: 23,
email: "123@qq.com",
}
var m = make(map[string]interface{})
mergo.Map(&m, student)
fmt.Printf("m: %v\n", m)
// m: map[age:23 name:Tom]
}
// map 转 struct
func mapToStruct() {
var m = make(map[string]interface{})
m["name"] = "Tom"
m["age"] = 23
m["email"] = "123@qq.com"
student := Student{}
mergo.Map(&student, m)
fmt.Printf("student: %v\n", student)
// student: {Tom 23 }
}
func main() {
structToMap()
mapToStruct()
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
注意事项:
-
mergo 不会复制非导出字段
-
map 使用时候,对应的key字段默认是小写的
-
mergo 可以嵌套赋值
文章来源: pengshiyu.blog.csdn.net,作者:彭世瑜,版权归原作者所有,如需转载,请联系作者。
原文链接:pengshiyu.blog.csdn.net/article/details/127005428
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)