map[key]value
map[键类型]值类型
var m map[int]string = map[int]string{1: "a", 2: "b"}
for k, v := range m {
fmt.Println(k, v)
}
输入字符串 统计字母出现次数
var str string
fmt.Scan(&str)
//将字符串转成切片
slice := []byte(str)
maps := make(map[byte]int)
for i := 0; i < len(slice); i++ {
maps[slice[i]]++
}
for k,v:=range maps{
fmt.Printf("%c:%d\n",k,v)
}
hello
l:2
o:1
h:1
e:1
map中的key必须支持== != 一般建议基本类型
delete(m,key)删除map中的数据
//在进行数据删除时,key不存在不会报错
map作为函数参数
- 地址传递
- 引用传递
- 形参和实参指向内存中相同的地址段 修改形参会影响实参的值
m:=map[int]string{1:"a",2:"b",3:"c"}
fmt.Printf("%p\n",m)
demoMap(m)
fmt.Println(m)
func demoMap(m map[int]string){
fmt.Printf("%p\n",m)
m[4]="d"
m[5]="e"
fmt.Println(m)
delete(m,5)
fmt.Println(m)
}
0xc0000682d0
0xc0000682d0
map[1:a 2:b 3:c 4:d 5:e]
map[1:a 2:b 3:c 4:d]
map[1:a 2:b 3:c 4:d]