哈希表在平時能夠說是最多見的一種數據結構,Go內建了map
這種類型,就是哈希表的一種實現。聲明一個map
類型的變量要指定它key/value
的類型,以下:數據結構
var m = map[keyType]valueType
其中key
的類型必須支持==比較運算符的數據類型指針
下面簡單聲明一個key
是string
類型值是int
類型的map
:code
var m map[string]int
map
類型的變量,是一個指向哈希表的引用,相似指針或者slice
。上面聲明的m
因爲沒有指向具體的哈希表,因此它是nil
的。一般聲明一個map
後須要用內建的make
進行初始化:string
m = make(map[string]int)
這時變量m
就指向了一個哈希表結構的數據,接下來咱們能夠對它進行操做了。class
給一個map
中添加值:變量
m["a"] = 1
這裏的a
能夠是存在也能夠不存在,若是存在就是替換這個a
的值,若是不存在就是設置一個a
的值爲1
遍歷
獲取map
中的值:map
i := map["a"]
若是鍵a
不存在,則返回0
,map
能夠返回雙值,判斷key
是否存在:數據類型
i, ok := m["a"]
i
就是當前a
存的值,ok
就是鍵a
是否存在,若是存在ok
爲true
不存在爲false
引用
len
能夠獲取map
當前的元素的個數:
n := len(m)
delete
能夠刪除map
中的值:
delete(m, "a")
遍歷map
能夠用range
:
for key, value := range m { fmt.Println("Key:", key, "Value:", value) }
map
初始化的是時候就能夠賦值:
m := map[string]int{ "rsc": 3711, "r": 2138, "gri": 1908, "adg": 912, }