分类
golang

golang映射(map)

Go 语言哈希映射–Map

如同其他语言的hashMap一样,go中也有对应的实现–map

Map 是一种无序的键值对的集合。Map 最重要的一点是通过 key 来快速检索数据,key 类似于索引,指向数据的值。

go语言定义map通常我们会看到三种方式

//声明map类型的变量[string]是key的类型,后面的string是值的类型
var m1 map[string]string

//创建并初始化一个空的map
var m2 map[string]string = map[string]string{}    

//创建并分配一个容量为10的map
var m3 map[string]string = make(map[string]string, 10) 

map是引用类型。如果不初始化 map,那么就会创建一个 nil map。nil map 不能用来存放键值对

创建map后,就可以向其中读写key了。

package main

import "fmt"

func main() {

    mp1:=map[string]string{"a":"aa","b":"bb"}
    mp1["c"]="cc"
    fmt.Println(mp1["a"])
    //从map中删除key
    delete(mp1,"c")

    mp2:=make(map[string]string)//分配内存空间
    mp2["c"]="cc"
    fmt.Println(mp2["c"])

    fmt.Println(mp2["b"])//空字符

    //判断key是否存在

    value,exists:=mp2["x"]
    if !exists{
        fmt.Println("not exists")
    }else{
        fmt.Println(value)
    }

    //if 语句块
    if v,has:=mp2["c"];has{
        fmt.Println(v)
    }

    //for遍历map
    for key,value:=range mp1{
        fmt.Println(key+":"+value)
    }
    
  //获取map中的键值对
    fmt.Println(len(mp1))

}

由@不迷失

小白懂编程站长