go語言如何對hashmap進(jìn)行擴(kuò)容?其實(shí)要解決這個(gè)問題也不難,為此小編總結(jié)了這篇文章,下面我們一起來看看對hashmap進(jìn)行擴(kuò)容的方法。
創(chuàng)新互聯(lián)建站致力于互聯(lián)網(wǎng)品牌建設(shè)與網(wǎng)絡(luò)營銷,包括成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站、SEO優(yōu)化、網(wǎng)絡(luò)推廣、整站優(yōu)化營銷策劃推廣、電子商務(wù)、移動(dòng)互聯(lián)網(wǎng)營銷等。創(chuàng)新互聯(lián)建站為不同類型的客戶提供良好的互聯(lián)網(wǎng)應(yīng)用定制及解決方案,創(chuàng)新互聯(lián)建站核心團(tuán)隊(duì)10年專注互聯(lián)網(wǎng)開發(fā),積累了豐富的網(wǎng)站經(jīng)驗(yàn),為廣大企業(yè)客戶提供一站式企業(yè)網(wǎng)站建設(shè)服務(wù),在網(wǎng)站建設(shè)行業(yè)內(nèi)樹立了良好口碑。定義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)用場景需求。