您好,登錄后才能下訂單哦!
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è)資訊頻道,感謝各位的閱讀。
免責(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)容。