Erlo

golang-Map

2021-04-18 17:31:27 发布   212 浏览  
页面报错/反馈
收藏 点赞

map

  1. 声明map

        1. var m map[int]string; m=map[int]string{} -> 完成初始化  // [int]代表key的类型,string代表value的类型
         2. m := make(map[int]string)
         3. map字面量的语法,同时还可以指定一些最初的key/value
            -> 
            ages := map[string]int{
                "alice":31,
                "charlie":34
            }
    
            相当于:
            ages := make(map[string]int)
            ages["alice"] = 31
            ages["charlie"] = 34
    
  2. 删除键值

    delete(m,1)  // m是map对象,1是键名
  3. 判断键存在不存在

    a,ok := m[2][1] // 此时ok=false(如果该位置元素不存在)
  4. 迭代

    for k,v := range m{}
  5. 排序

    import sort
    sort.Ints(s)
  6. 取值

    • fmt.Println(ages[“alice”])
    • 取值操作是安全的,即使key不存在也没关系,如果查找失败,则返回value对应的零值。
    • map中的元素并不是一个变量,因此不能对map的元素进行取址操作(map可能随着元素数量的增长而重新分配更大的内存空间,从而导致之前的地址无效)
    • 遍历取 ->

      for name,age := ages{
            fmt.Println(name,age)
      }
      
  7. 迭代顺序是不确定的,每次的遍历顺序都不相同,如果要求按顺序遍历,则必须显式对key进行排序,可以用sort包的strings函数对字符串slice进行排序

  8. map类型的零值是nil -> map[] ,也就是引用任何哈希表
  9. 要向map存数据前必须先创建map
登录查看全部

参与评论

评论留言

还没有评论留言,赶紧来抢楼吧~~

手机查看

返回顶部

给这篇文章打个标签吧~

棒极了 糟糕透顶 好文章 PHP JAVA JS 小程序 Python SEO MySql 确认