map
map以散列表方式存储键值对集合
map中每个元素都是键值对
1
map[key]value
key是操作map的唯一标准,可以通过key对map中元素进行增加/删除/修改/查看
key是唯一的,添加重复的key会覆盖之前的元素
map是值类型,值声明时为空指针(nil)
1
2
3var m map[string]int
fmt.Println(m == nil) //输出 true
fmt.Printf("%p",m) //输出 0×0map读写数据时并不是并发安全的,可以结合RWMutex保证并发安全。
实例化map的几种方式
使用make函数实例化一个没有初始值的map
1
2
3m := make(map[string]string)
fmt.Println(m==nil) //输出 false
fmt.Printf("%p",m) //输出内存地址可以在声明map时直接给map赋初始值,注意初始值在一行和多行写的语法区别
- map中元素键值对必须满足:key:value
- key和value的类型必须和map[key]value类型严格对应
1
2
3
4
5
6m := map[string]string{"name":"zhangmoumou","address":"北京市昌平区"}
m1 := map[string]string{
"name":"zhangmoumou",
"address":"北京市昌平区",
}
fmt.Println(m,m1)go语言中的map是无序的。