您好,登錄后才能下訂單哦!
go語言如何對hashmap進行擴容?其實要解決這個問題也不難,為此小編總結了這篇文章,下面我們一起來看看對hashmap進行擴容的方法。
定義hashmap變量
由于go語言是一個強類型的語言,因此hashmap也是有類型的,具體體現在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(非準確值,只是有提示意義) 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,返回類型默認值 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進行刪除和更新操作的,規則如下:
迭代是無序的,跟插入是的順序無關
迭代的過程中刪除一個key,無論遍歷還是沒有遍歷過都不會再遍歷到
迭代的過程中添加一個key,不確定是否能遍歷到
未初始化的map也可以迭代
其他
map的value是不可取地址的,意味著 &m["a"]這樣的語法是非法的
len和cap分別可以獲取當前map的kv個數和總容量
看完這篇文章,你們學會對hashmap進行擴容的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。