Go的100天之旅-09Map

簡介

哈希表在平時能夠說是最多見的一種數據結構,Go內建了map這種類型,就是哈希表的一種實現。聲明一個map類型的變量要指定它key/value的類型,以下:數據結構

var m = map[keyType]valueType

其中key的類型必須支持==比較運算符的數據類型指針

下面簡單聲明一個keystring類型值是int類型的mapcode

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不存在,則返回0map能夠返回雙值,判斷key是否存在:數據類型

i, ok := m["a"]

i就是當前a存的值,ok就是鍵a是否存在,若是存在oktrue不存在爲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,
}
相關文章
相關標籤/搜索