go语言(4)

Map go语言中的map (key value)

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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
// 声明
var <name> map[keyType]valueType
var a map[int]string
var a map[string]string
var a map[int]map[int]string

// 声明不会分配内存 每个map需要使用make进行初始化
a = make(map[int]string)

// 当map的value为map时,每个map都需要初始化
var student map[int]map[string]string
student = make(map[int]map[string]string)
student[0] = make(map[string]string,3)
student[0][name] = 'guozijing'
student[0][sex] = 'male'
student[0][address] = 'beijing'

student[1] = make(map[string]string,3)

// map的删除
delete(name,key)

// 删除一整个map 遍历删除 或者重新初始化
name = make(map[int]string)

// map的查找
var , ok := name[key]
if ok {
fmt.Println('ok')
} else {
fmt.Println('no')
}

// map的遍历
var student map[int]map[string]string
student = make(map[int]map[string]string)
student[0] = make(map[string]string,3)
student[0][name] = 'guozijing'
student[0][sex] = 'male'
student[0][address] = 'beijing'

student[1] = make(map[string]string,3)
student[1][name] = 'guozijing'
student[1][sex] = 'male'
student[1][address] = 'beijing'

for k1,v1 := range student {
for k2,v2 := range v2 {
fmt.Println('%vt %vt %vn', k1, k2, v2)
}
}

// map的切片
package main
import "fmt"

func main() {
var student []map[string]string
student = make([]map[string]string, 2)
if student[0] == nil {
student[0] = make(map[string]string,2)
student[0]['name'] = 'guozijing'
student[0]['sex'] = 'male'
}
if student[1] == nil {
student[1] = make(map[string]string)
student[1]['name'] = 'guojingfeng'
student[1]['sex'] = 'male'
}
// append
studentA := map[string]string {
'name' : 'Jason',
'sex' : 'male'
}
append(student, studentA)
fmt.Println(student)
}

// map按照key排序输出value
package main
import "fmt"

func main() {
m := make(map[int]int, 10)
m[1] = 12
m[10] = 20
m[3] = 21
m[7] = 12

var key []int
for k, _:= range m {
append(key, k)
}
sort.Ints(key)

for _, k := range key {
fmt.Println(m[key])
}
}