基本語法
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類型,更適合管理複雜的數據