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)