1 package main
2
3 import "fmt"
4
5 func main() {
6 /*
7 map和slice的结合使用:
8 1.创建map用于存储人的信息
9 name,age,sex,address
10
11 2.每个map存储一个人的信息
12
13 3.将这些map存入到slice中
14
15 4.打印遍历输出
16 */
17
18 // 1.创建map存储第一个人的信息
19 map1 := make(map[string]string)
20 map1["name"] = "王二狗"
21 map1["age"] = "30"
22 map1["sex"] = "男性"
23 map1["address"] = "北京市XX路XX号"
24 fmt.Println(map1) // map[address:北京市XX路XX号 age:30 name:王二狗 sex:男性]
25
26 // 2.第二个人
27 map2 := make(map[string]string)
28 map2["name"] = "李小花"
29 map2["age"] = "20"
30 map2["sex"] = "女性"
31 map2["address"] = "上海市。。。"
32 fmt.Println(map2) // map[address:上海市。。。 age:20 name:李小花 sex:女性]
33
34 // 3.
35 map3 := map[string]string{"name": "ruby", "age": "30", "sex": "女性", "address": "杭州市"}
36 fmt.Println(map3) // map[address:杭州市 age:30 name:ruby sex:女性]
37
38 // 将map存入到slice中
39 s1 := make([]map[string]string, 0, 3)
40 s1 = append(s1, map1)
41 s1 = append(s1, map2)
42 s1 = append(s1, map3)
43
44 // 遍历切片
45 for i, val := range s1 {
46 // val :map1,map2,map3
47 fmt.Printf("第 %d 个人的信息是:\n", i+1)
48 fmt.Printf("\t姓名:%s\n", val["name"])
49 fmt.Printf("\t年龄:%s\n", val["age"])
50 fmt.Printf("\t性别:%s\n", val["sex"])
51 fmt.Printf("\t地址:%s\n", val["address"])
52 }
53 }