map

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]

你可能感兴趣的:(map)