八.Go哈希字典map

Map

  • map以key-value的形式存儲(chǔ)
  • key必須是支持==或者!=比較運(yùn)算的類型,不能是函數(shù)、map或slice
  • map查找比線性搜索快很多,但比使用索引訪問數(shù)據(jù)的類型慢
  • map使用make()創(chuàng)建,支持:=這種方式
  • make(map[key類型]value類型)
  • 超出容量時(shí)會(huì)自動(dòng)擴(kuò)容,使用len()獲取元素個(gè)數(shù)
  • 簡(jiǎn)直對(duì)不存在時(shí),自動(dòng)添加,使用delete()刪除某鍵值對(duì)
func main() {
    m1 := make(map[int]string)
    m1[0] = "OK"
    fmt.Println(m1)
    delete(m1, 0)
    fmt.Println(m1)
}
  • map嵌套map時(shí),make只會(huì)初始化第一層map,第二層map也需要單獨(dú)初始化
func main() {
    m1 := make(map[int]map[int]string)
    a, ok := m1[2][1]
    if !ok {
        m1[2] = make(map[int]string)
    }
    m1[2][1] = "value"
    a, ok = m1[2][1]
    //value true
    fmt.Println(a, ok)
}
  • 使用 for range 對(duì)map和slice進(jìn)行迭代操作
func main() {
    m1 := make(map[int]string)
    for i := 0; i < 10; i++ {
        m1[i] = strconv.Itoa(i)
    }
    for i := range m1 {
        fmt.Println(m1[i])
    }
    fmt.Println(m1)
}

直通車

一.Go開發(fā)工具及命令
二.Go編程基礎(chǔ)知識(shí)
三.Go的類型與變量
四.Go常量與運(yùn)算符
五.Go控制語句
六.Go數(shù)組
七.Go切片slice
八.Go哈希字典map
九.Go函數(shù)func
十.Go結(jié)構(gòu)struct

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容