概述
Map 集合是无序的 key-value 数据结构。
Map 集合中的 key / value 可以是任意类型,但所有的 key 必须属于同一数据类型,所有的 value 必须属于同一数据类型,key 和 value 的数据类型可以不相同。
声明 Map
查看代码
go
package main
import "fmt"
func main() {
map_1()
}
func map_1() {
// 声明 Map
var p1 map[int]string;
p1 = make(map[int]string)
p1[1] = "null"
p1[0] = "0"
fmt.Println(p1)
// 合并
var p2 map[string]string = make(map[string]string)
p2["name"] = "nangong"
fmt.Println(p2)
var p3 map[int]string = map[int]string{1:"gh"}
p3[2] = "gg"
fmt.Println(p3)
// 也可以简写
p4 := map[string]string{ "name": "kiku", "sex": "femal"}
fmt.Println(p4)
}
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
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
运行结果:
生成 JSON
查看代码
go
// 生成json数据
func map_2() {
res := make(map[string]interface{})
res["statusCode"] = 200
res["message"] = "success"
res["object"] = map[string]interface{}{
"username": "admin",
"token": "fjrerekkkkkkkekemw",
"lastUpdateTime": "2011-20-20 30:12:22",
"tags": []string{"阴阳师","原神"},
}
fmt.Println(res)
fmt.Println("")
// 序列化
jsons, errs := json.Marshal(res)
if errs != nil {
fmt.Println("errors: ", errs)
}
fmt.Println("")
fmt.Println("json: ", string(jsons))
//反序列化
res2 := make(map[string]interface{})
errs = json.Unmarshal([]byte(jsons), &res2)
if errs != nil {
fmt.Println("errors: ", errs)
}
fmt.Println("")
fmt.Println("map: ", res2)
}
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
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
运行结果:
编辑和删除
查看代码
go
// 编辑和删除
func map_3() {
res := make(map[string]interface{})
res["statusCode"] = 200
res["message"] = "success"
res["object"] = map[string]interface{}{
"username": "admin",
"token": "fjrerekkkkkkkekemw",
"lastUpdateTime": "2011-20-20 30:12:22",
"tags": []string{"阴阳师","原神"},
}
fmt.Println(res)
fmt.Println("")
res["statusCode"] = 500
fmt.Println("after update: ", res)
fmt.Println("")
delete(res, "message")
fmt.Println("after delete: ", res)
fmt.Println("")
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
运行结果: