最近写代码发现go没有关于slice转map的包或者网上也没有写的靠谱的转化代码,但是现实场景中,我们很容易遇到这种问题,就是获取到的slice []struct 数据类型,我们需要将它转化成map之后被其他的代码取用,废话不多说,我们开始;
首先肯定是需要用到反射reflect进行通用化,不然的话无法试用所有的方法。直接贴代码:
package main
import (
"fmt"
_ "go/types"
"reflect"
)
type User struct {
Age int `json:"age"`
Name string `json:"name"`
Sex string `json:"sex"`
Education int `json:"education"`
}
func main() {
var list []User
info1 := User{
Age:11,
Name:"周杰伦1",
Sex:"man",
Education:10000,
}
info2 := User{
Age:12,
Name:"周杰伦2",
Sex:"man",
Education:20000,
}
info3 := User{
Age:13,
Name:"周杰伦3",
Sex:"man",
Education:30000,
}
list = append(list, info1)
list = append(list, info2)
list = append(list, info3)
mapInfo := Slice2Map(list, "Name")
mapInfo1 := Slice2Map(list, "Age")
mapInfo2 := Slice2Map(list, "Education")
fmt.Printf("获取到的map1是:%+v \n", mapInfo)
fmt.Printf("获取到的map2是:%+v \n", mapInfo1)
fmt.P
Go语言中slice转map的反射实践

本文介绍了如何使用Go语言的反射机制,将slice转换为map,针对struct数据并动态绑定键值,实现实时场景的数据转换
最低0.47元/天 解锁文章
970

被折叠的 条评论
为什么被折叠?



