map:是key-value數據結構,又稱爲字段或者關聯數組,相似其它編程語言的集合;golang
基本語法:var 名稱 map[鍵類型]值類型編程
- key的類型能夠是:bool、數字、string、指針、管道,還能夠是包含前面幾個類型的接口、結構體、數組;(一般爲Int、string)
- value的類型基本和key同樣;
申明:數組
- var a map[string]string
- var a map[string]int
- var a map[int]string
- var a map[string]map[string]string
- 申明是不會分配內存的,初始化須要make,分配內存後才能被賦值和使用;
a = make(map[int]int, 0)
使用方式:數據結構
- var a map[int]int
a = make(map[int]int,0)
- a := make(map[int]int)
- a := map[int]int{
1:2,
2:3,
}
map的增刪改查:app
map的遍歷:編程語言
map的長度:用len統計有多少對key-valueide
map的切片:(動態增長map),通常而言,初始化的切片的長度是有必定長度的,要想再增長,能夠用append函數
函數
map排序:spa
- golang中沒有一個專門的方法針對map的key排序;
- golang中的map默認是無序的;
- golang中map的排序,是先對key進行排序,而後根據key遍歷輸出便可;(我如今的版本里面map裏面是有序的了)
map的使用細節:指針
- map是引用類型,在一個函數接收map,修改後,會直接影響到原來的map
- map的容量達到後,要想再增長map,會自動擴容;
- map的value常用struct類型,更適合管理複雜的數據