溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

go語言如何對hashmap進(jìn)行擴容

發(fā)布時間:2020-06-10 10:38:26 來源:億速云 閱讀:321 作者:Leah 欄目:編程語言

go語言如何對hashmap進(jìn)行擴容?其實要解決這個問題也不難,為此小編總結(jié)了這篇文章,下面我們一起來看看對hashmap進(jìn)行擴容的方法。                      

定義hashmap變量

由于go語言是一個強類型的語言,因此hashmap也是有類型的,具體體現(xiàn)在key和value都必須指定類型,比如聲明一個key為string,value也是string的map,需要這樣做 

var m map[string]string // 聲明一個hashmap,還不能直接使用,必須使用make來初始化
m = make(map[string]string) // 初始化一個map
m = make(map[string]string, 3) // 初始化一個map并附帶一個可選的初始bucket(非準(zhǔn)確值,只是有提示意義)

m := map[string]string{} // 聲明并初始化

m := make(map[string]string) // 使用make來初始化

get,set,delete

m := map[string]int
m["a"] = 1
fmt.Println(m["a"]) // 輸出 1
// 如果訪問一個不存在的key,返回類型默認(rèn)值
fmt.Println(m["b"]) // 輸出0
// 測試key是否存在
v, ok := m["b"]
if ok {
    ...
}
// 刪除一個key
delete(m, "a")
迭代器
// 只迭代key
for k := range m {
    ...
}
// 同時迭代key-value
for k, v := range m {
    ...
}

在迭代的過程中是可以對map進(jìn)行刪除和更新操作的,規(guī)則如下:

迭代是無序的,跟插入是的順序無關(guān)

迭代的過程中刪除一個key,無論遍歷還是沒有遍歷過都不會再遍歷到

迭代的過程中添加一個key,不確定是否能遍歷到

未初始化的map也可以迭代

其他

map的value是不可取地址的,意味著 &m["a"]這樣的語法是非法的

len和cap分別可以獲取當(dāng)前map的kv個數(shù)和總?cè)萘?/p>

看完這篇文章,你們學(xué)會對hashmap進(jìn)行擴容的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI