58_Go基础_1_25 map数据类型

 1 package main
 2 
 3 import "fmt"
 4 
 5 func main() {
 6     /*
 7         一:数据类型:
 8             基本数据类型:int,float,string,bool
 9             复合数据类型:array,slice,map,function,pointer,struct。。。
10 
11                 array:[size]数据类型
12                 slice:[]数据类型
13                 map:map[key的类型]value的类型
14 
15         二:存储特点:
16             值类型:int,float,string,bool,array,struct
17             引用类型:slice,map
18                 make(),slice,map,chan
19 
20     */
21 
22     map1 := make(map[int]string)
23     map2 := make(map[string]float64)
24     fmt.Printf("%T\n", map1) // map[int]string
25     fmt.Printf("%T\n", map2) // map[string]float64
26 
27     map3 := make(map[string]map[string]string) // map[string]map[string]string
28     m1 := make(map[string]string)
29     m1["name"] = "王二狗"
30     m1["age"] = "30"
31     m1["salary"] = "3000"
32     map3["hr"] = m1
33     m2 := make(map[string]string)
34     m2["name"] = "ruby"
35     m2["age"] = "28"
36     m2["salary"] = "8000"
37     map3["总经理"] = m2
38     fmt.Println(map3) // map[hr:map[age:30 name:王二狗 salary:3000] 总经理:map[age:28 name:ruby salary:8000]]
39 
40     fmt.Println("---------------")
41 
42     map4 := make(map[string]string)
43     map4["王二狗"] = "矮矬穷"
44     map4["李小花"] = "白富美"
45     map4["ruby"] = "住在隔壁"
46 
47     fmt.Println(map4) // map[ruby:住在隔壁 李小花:白富美 王二狗:矮矬穷]
48 
49     map5 := map4
50     fmt.Println(map5) // map[ruby:住在隔壁 李小花:白富美 王二狗:矮矬穷]
51 
52     map5["王二狗"] = "高富帅"
53     fmt.Println(map4) // map[ruby:住在隔壁 李小花:白富美 王二狗:高富帅]
54     fmt.Println(map5) // map[ruby:住在隔壁 李小花:白富美 王二狗:高富帅]
55 
56 }