golang golang地图列表
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了golang golang地图列表相关的知识,希望对你有一定的参考价值。
package main
import (
"fmt"
)
func main() {
var v = []map[int32][]int{}
for i := 0; i <= 10; i++ {
var m = make(map[int32][]int)
var vs = []int{}
for j := 1; j <= 10; j++ {
vs = append(vs, j)
}
m[int32(i)] = vs
v = append(v, m)
}
fmt.Printf("%v\n", v)
fmt.Println("Hello, playground")
}
// [map[0:[1 2 3 4 5 6 7 8 9 10]] map[1:[1 2 3 4 5 6 7 8 9 10]] map[2:[1 2 3 4 5 6 7 8 9 10]] map[3:[1 2 3 4 5 6 7 8 9 10]] map[4:[1 2 3 4 5 6 7 8 9 10]] map[5:[1 2 3 4 5 6 7 8 9 10]] map[6:[1 2 3 4 5 6 7 8 9 10]] map[7:[1 2 3 4 5 6 7 8 9 10]] map[8:[1 2 3 4 5 6 7 8 9 10]] map[9:[1 2 3 4 5 6 7 8 9 10]] map[10:[1 2 3 4 5 6 7 8 9 10]]]
// Hello, playground
golang golang嵌套地图相等
func main() {
//var data Data
data := map[string]interface{}{
"A": 1,
"B": 2,
"C": map[string]interface{}{
"D": 3,
"E": 4,
"G": map[string]interface{}{
"H": 123,
"Q": 456,
},
},
"F": 5,
"DATE": "dd",
}
newMap1 := flattenMap(data)
log.Printf("%v\n", newMap1)
data2 := map[string]interface{}{
"A": 1,
"B": 2,
"C": map[string]interface{}{
"D": 3,
"E": 4,
"G": map[string]interface{}{
"H": 123,
"Q": 456,
},
},
"F": 5,
"DATE": "dd",
}
newMap2 := flattenMap(data2)
log.Printf("%v\n", newMap2)
log.Println(mapEqual(newMap1, newMap2))
}
func mapEqual(m1, m2 map[string]interface{}) bool {
for k, v := range m1 {
v1, ok := m2[k]
if !ok {
return false
}
if v1 != v {
return false
}
////v2, ok1 := v.(int)
////v3, ok2 := v1.(int)
////if !ok1 || !ok2 || v2 != v3 {
//// return false
////}
//switch v.(type) {
//case int:
// v2, ok1 := v1.(int)
// if !ok1 {
// return false
// }
// v3 := v.(int)
// if v2 != v3 {
// return false
// }
//
//case time.Time:
//
//}
}
return true
}
func map2Json(m map[string]interface{}) (string, error) {
b, err := json.Marshal(&m)
return string(b), err
}
func flattenMap(m map[string]interface{}) map[string]interface{} {
d := make(map[string]interface{})
for k, v := range m {
v1, ok := v.(map[string]interface{})
if ok {
flatMap(d, v1, k)
} else {
d[k] = v
}
}
return d
}
func flatMap(d, m map[string]interface{}, oldKey string) {
for k, v := range m {
v1, ok := v.(map[string]interface{})
if ok {
flatMap(d, v1, oldKey+"."+k)
} else {
d[oldKey+"."+k] = v
}
}
}
以上是关于golang golang地图列表的主要内容,如果未能解决你的问题,请参考以下文章
golang golang嵌套地图相等
golang golang flatten嵌套地图
golang golang解析嵌套的地图
遍历 golang 地图
在 golang 中使用私有地图、切片的最佳实践是啥?
Golang 创建切片地图