go基础(10)map

定义

Map 是一种无序的键值对的集合。Map 最重要的一点是通过 key 来快速检索数据,key 类似于索引,指向数据的值
定义方式:
mapCity := make(map [string]int)
mapCity: map集合名
make关键字
map关键字
string: 键的类型
int: 值的类型

func main() {
    cityMap := make(map[string]int)
    cityMap["city1"] = 11
    cityMap["city2"] = 22
    cityMap["city3"] = 33
    cityMap["city4"] = 44
    for k,v := range cityMap{
        fmt.Println(k,v)
    }
}

说明:因为map是无序的所以打印出来的值 不一定会按照city1到city4的顺序来

获取map某一键的值

val,ok := cityMap["city3"]
说明:ok是一个布尔值,如果存在 cityMap["city3"]就返回true,否则返回false;val是在map中键city3对应的值,如果不存在cityMap["city3"]就返回0

func main() {
    cityMap := make(map[string]int)
    cityMap["city1"] = 11
    val,ok := cityMap["city5"]
    if ok {
        fmt.Println(val)
    }else {
        fmt.Println("不存在")
    }
}
//结果为不存在

根据map键删除

delete(MAP,KEY)
MAP:集合名;KEY:要删除的键

func main() {
    nameMap := make(map[string]string)
    nameMap["石家庄"] = "赵子龙"
    nameMap["保定"] = "高渐离"
    delete(nameMap,"石家庄")
    for k, v := range nameMap {
        fmt.Println(k,v)
    }
}
//打印只有 保定 高渐离

注:如果删除传递的键不存在或者为nil,delete不会进行任何操作

map排序

func main() {
    nameMap := make(map[string]string)
    nameMap["aaa"] = "a1"
    nameMap["bbb"] = "b2"
    nameMap["ccc"] = "c3"
    nameMap["ddd"] = "d5"
    nameMap["eee"] = "e6"
    keys := make([]string, 0)
    for k := range nameMap {
        keys = append(keys, k)
    }
    sort.Strings(keys)//对 字符类型的切片进行排序
    for _, v := range keys {
        fmt.Println(v, nameMap[v])
    }
}

说明:map本身是无序的,想要进行排序,先把map所有的key都拿出来放到切片里面去,然后通过切片的sort内置方法对切片进行排序,排完之后再拿出切片里面的值当做map的key进行取值就是有序的了

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容