Go語言基礎學習八-映射
Go語言中映射是一種內置的數據結構,保存鍵-值對數據集合,在映射中所有的鍵必須是支持==和!=操作符的類型,一般的類型都支持如,int,float64,rune,string和可比較的數組及結構體,但Go語言的切片和不能用於比較的數組和結構體不能作爲鍵值。
映射的一些操作如下:
m[k] = v : 用鍵值k(鍵)將值v(值)賦值給映射m(維持鍵-值的映射名)
Delete(m,k) : 刪除映射m中的k鍵對應的值
v:=m[k] : 將映射m中k鍵對應的值賦值給v,若k鍵不存在,則將映射類型的0值賦值給v
v,found :=m[k]: 同上,但發現有k鍵存在時,found爲true,不存在則found爲false
len(m) :返回映射中鍵值對的個數
映射屬於引用類型(就相當於指針類型),無論映射有多少數據保存,映射的傳遞都是很廉價的,映射的查詢速度很快,且映射裏所有的鍵的數據類型必須相同,值也是如此,但鍵和值的數據類型可以不同,但是我們可以創建一個值爲空接口類型(interface{})的映射,這樣任意類型的值都可以作爲該映射的值。
映射的創建:
make(map[KeyType] ValueType,initialCapacity) //使用make創建映射,一個空的映射
make(map[KeyType] ValueType)
map[KeyType] ValueType{}
map[KeyType] ValueType{key1:value1,key2:value2…}
同樣的,映射和數組或切片一樣可以使用索引操作符[],但和數組或切片不同,映射的鍵類型不必是int型,可以是字符串,可比較的數組,指針等
for…range來遍歷映射,for key,value :=range map,遍歷每一個鍵值對,分別返回該映射的鍵和值。
映射的查找操作:
v = m[k],直接返回鍵k的]對應的值
v,found := m[k],返回鍵k對應的值和是否發現鍵值的標誌位
映射的修改操作:
delete(populationForCity,”Shanghai”),刪除映射population中的Shanghai鍵的值
更新和添加直接對鍵進行賦值即可。
當我們遍歷一個映射的時候,遍歷的順序是按鍵的大小排序的(Unicode碼點順序)