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)
}
輸入字符串 統(tǒng)計(jì)字母出現(xiàn)次數(shù)
var str string
fmt.Scan(&str)
//將字符串轉(zhuǎn)成切片
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中的數(shù)據(jù)
//在進(jìn)行數(shù)據(jù)刪除時(shí),key不存在不會(huì)報(bào)錯(cuò)
map作為函數(shù)參數(shù)
- 地址傳遞
- 引用傳遞
- 形參和實(shí)參指向內(nèi)存中相同的地址段 修改形參會(huì)影響實(shí)參的值
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]