码迷,mamicode.com
首页 > 其他好文 > 详细

go Map

时间:2020-03-04 19:36:59      阅读:58      评论:0      收藏:0      [点我收藏+]

标签:说明   存在   没有初始化   nil   str   空间   自动   块存储   index   

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. 引用类型

    存储地址

go Map

标签:说明   存在   没有初始化   nil   str   空间   自动   块存储   index   

原文地址:https://www.cnblogs.com/henryno12/p/12411194.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!