Go的100天之旅-09Map
阿新 • • 發佈:2020-07-27
目錄
簡介
雜湊表在平時可以說是最常見的一種資料結構,Go內建了map
這種型別,就是雜湊表的一種實現。宣告一個map
型別的變數要指定它key/value
的型別,如下:
var m = map[keyType]valueType
其中key
的型別必須支援==比較運算子的資料型別
下面簡單宣告一個key
是string
型別值是int
型別的map
:
var m map[string]int
map
型別的變數,是一個指向雜湊表的引用,類似指標或者slice
。上面宣告的m
由於沒有指向具體的雜湊表,所以它是nil
的。通常宣告一個map
後需要用內建的make
進行初始化:
m = make(map[string]int)
這時變數m
就指向了一個雜湊表結構的資料,接下來我們可以對它進行操作了。
常見的操作
給一個map
中新增值:
m["a"] = 1
這裡的a
可以是存在也可以不存在,如果存在就是替換這個a
的值,如果不存在就是設定一個a
的值為1
獲取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,
}