基本语法
var 变量名 map[key类型] value类型
key可以是很多种类型,比如bool,数字,string,指针,channer,还可以是只包含前面几个类型的接口,结构体,数组。通常为int,string,不可重复,如果重复则会被认为是修改value的操作
value的类型和key基本一致,通常为数字(整数,浮点型),string,map,struct
注意:slice,map还有function不可以,因为这几个没办法用“==”来判断
声明:
var a map[string] string
var a map[string] int
var map[int] string
var map[string] map[string] string
注意:声明是不回分配内存的,初始化需要make,分配内训后才能赋值和使用
使用方式有三种
map删除元素,delete()内置函数
根据key来删除map中的元素,如果key存在则删除,key不存在则不操作,不会报错
delete(map,key)
map的查找
map的排序,map默认是无序的
把map的key放到一个切片中,
在切片中使用sort.inits()内置函数进行排序,
循环切片根据切片中已排序过的key输出map中的元素
使用细节
1.map是引用类型,遵守引用类型传递的机制,在一个函数接收map,修改后会直接修改原来map中的值
2.map的容量达到后,再想map增加元素,会自动扩容,并不会发生panic
3.map的value也经常使用struct类型,更适合管理复杂的数据