• go Map


    Map

    特点

    1. 无序的
    2. 长度不固定,与slice一样,也是一种引用类型
    3. 内置len函数适用于map,返回map中拥有key的数量
    4. map的key必须是所有可以比较的类型,如布尔型,整数,浮点,字符串

    创建Map

    1. 使用make()创建map

      //声明map map是引用类型,默认零值是nil
      //如果map不初始化就是nil,所以不能存储键值对
      //没有初始化的map,也说明还没有指向一块存储区域,所以无法进行存储操作
      var map_name map[key_data_type]value_data_type  nil
      
      //使用make函数创建
      var map_name = make(map[key_data_type]value_data_type) 不是nil,但len==0
      
      //字面量方式
      map_name := map[string]float32{"c":1.2,"Go":3.4}  不是nil,len==2
      
      各种类型的零值
      int 0
      float 0.0
      string ""
      array 数组中类型的零值
      
      slice 引用类型 nil //切片一旦声明,就默认自动创建底层数组,所以不初始化也能使用
      map 引用类型 nil //map不初始化,则没有底层空间
      
    2. 判断map是否初始化

      var m1 map[int]int
      if(m1 == nil){
          //初始化
       m1 = make(map[int]int)
      }
      

    Map存取数据

    1. 存储键值对到map中

      m1[1]="hello"
      
    2. 从map中取数据

      m1[1] //正常取存在的key对应的值
      m1[10] //key不存时,获取到的值是类型的零值
      
      value,ok := m1[10] //通过ok的返回值(布尔型)可以判断是否有值
      
    3. 修改map中的数据

      m1[1]="world"
      
    4. 删除map中的数据

      func delete(m map[Type]Type1, key Type)
      //若m为nil或无此元素,delete不进行操作。
      
    5. 遍历map

      使用for range
      
      数组,切片: index,value
      map: key,value
      
    6. 排序

      sort包
      
      func Ints(a []int)
      //Ints函数将a排序为递增顺序
      
      func Strings(a []string)
      //Strings函数将a排序为递增顺序
      
    7. map与slice结合使用

      var slice1 = make([]map[string]string,0,3)
      //切片中存放map
      

    Map的数据类型

    1. 类型

      map[key_type]value_type

    2. 引用类型

      存储地址

  • 相关阅读:
    机器学习——线性回归
    系统课程
    C++——数据结构之链表
    PHP检测json格式数据
    如何搭建git服务器
    ucenter通信实现同步登录、同步退出(详细)
    获取ip地址
    JQuery对象与DOM对象的区别与转换
    php导出数据到csv文件
    [转载]php中sleep,flush,ob_flush函数介绍
  • 原文地址:https://www.cnblogs.com/henryno12/p/12411194.html
Copyright © 2020-2023  润新知