go語言如何對hashmap進(jìn)行擴(kuò)容?其實(shí)要解決這個(gè)問題也不難,為此小編總結(jié)了這篇文章,下面我們一起來看看對hashmap進(jìn)行擴(kuò)容的方法。
定義hashmap變量
由于go語言是一個(gè)強(qiáng)類型的語言,因此hashmap也是有類型的,具體體現(xiàn)在key和value都必須指定類型,比如聲明一個(gè)key為string,value也是string的map,需要這樣做
var m map[string]string // 聲明一個(gè)hashmap,還不能直接使用,必須使用make來初始化 m = make(map[string]string) // 初始化一個(gè)map m = make(map[string]string, 3) // 初始化一個(gè)map并附帶一個(gè)可選的初始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 // 如果訪問一個(gè)不存在的key,返回類型默認(rèn)值 fmt.Println(m["b"]) // 輸出0 // 測試key是否存在 v, ok := m["b"] if ok { ... } // 刪除一個(gè)key delete(m, "a") 迭代器 // 只迭代key for k := range m { ... } // 同時(shí)迭代key-value for k, v := range m { ... }
在迭代的過程中是可以對map進(jìn)行刪除和更新操作的,規(guī)則如下:
迭代是無序的,跟插入是的順序無關(guān)
迭代的過程中刪除一個(gè)key,無論遍歷還是沒有遍歷過都不會再遍歷到
迭代的過程中添加一個(gè)key,不確定是否能遍歷到
未初始化的map也可以迭代
其他
map的value是不可取地址的,意味著 &m["a"]這樣的語法是非法的
len和cap分別可以獲取當(dāng)前map的kv個(gè)數(shù)和總?cè)萘?/p>
看完這篇文章,你們學(xué)會對hashmap進(jìn)行擴(kuò)容的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計(jì)公司行業(yè)資訊頻道,感謝各位的閱讀。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。