zoukankan      html  css  js  c++  java
  • Go语言的map

    map一般是以库的方式提供,在C++和C#和JAVA中都需要引用相应的库而Go语言不需要引入库,可以直接方便使用

    定义:map是一堆键值对的未排序集合。无序

    1.声明变量:

      map的声明基本上没有多余的元素:

        var myMap map[string]PersonInfo //其中myMap是声明的map变量,string是键的类型,而PersonInfo则是所有存放的值的类型

        var 变量名 map[键类型] 值类型

            如:var test map[int] int

        申明时变量的默认值为nil也就是对应的0(bool类型对应false int类型对应0以此内推)

    2.初始化://声明之后必须初始化才能使用

    同样我们可以使用Go语言内置的make()函数来初始化一个新的map。

    myMap = make(map[string] PersonInfo)//键类型为string 值类型为PersonInfo

    myMap = make(map[string] PersonInfo,100) //表示初始存储能力为100

    myMap = map[string]int{}

    3.创建并初始化map 

              myMap :=make(map[string]int)

       myMap := map[string]int{ 可加可不加}

       变量 := map[键类型][值类型]{赋值}

    跟变量一样可以先申明初始化再辅助,也可以直接声明并初始化且赋值

    4.key与value的限制:

      value可以是任意类型甚至于自己的结构组,key只能是可比较类型(支持==的类型)

    5.新增 删除 更新 查询:

      新增:类似于python的字典,myMap["input"] = "Hi"  

      删除:delete(变量名,键名)

      更新(覆盖) myMap["input"] = "Hello"

      查询 :与数组切片类似 i :=m[键名]  得到键名对应的key

         i,ok := m[键名] 得到key和value

    6.遍历:

      因为map是无序的,所以正常遍历的时候是随机输出

      但是有有序遍历的算法:

        将key抽出来,使用数组存储在对key数组进行排序后根据key数组输出value

    7.函数传参map本身是引用类型,作为形参或者返回参数的时候,传递的是地址。

  • 相关阅读:
    codevs2574 波兰表达式
    绿书模拟day10 单词前缀
    codevs2171 棋盘覆盖
    noip2008 双栈排序
    图论总结复习
    noip2010 关押罪犯
    flask使用geventwebsocket完成小型聊天系统
    MongoDB
    flask基础内容总览
    flask蓝图,cbv,python中的redis操作
  • 原文地址:https://www.cnblogs.com/beautiful7/p/12362098.html
Copyright © 2011-2022 走看看