G

[Golang基础语法] Map字典

RoLingG Golang 2024-03-15

Map字典

  1. Go语言中给的Map,其实就是一个映射的字典,可以根据一个key去找一个value
  2. Map是散列表的引用(哈希表),拥有键值对元素的无序集合,键是唯一的,可获取、更新、删除。
  3. 都是通过常量时间完成。
  4. 所有可比类型都能作为key。
  5. 如果Map的相应key不存在,但是被使用了,不会报错,会自动改成该key对应的value对应类型的零值。
  6. Map一般创建的时候一定要初始化,因为Map是复杂数据类型,未初始化时值为nil,且未赋值不会在运行前报错,运行时才会有报错。
  7. Map的普通用法:

    func createmap() {
       //创建相同键值map
       steps := make(map[string]string)
       fmt.Println(steps)
    
       //创建不同键值map
       scores := make(map[string]int)
       fmt.Println(scores)
    
       //通过字面值创建map
       var steps2 = map[string]string{
          "1": "有毒",
          "2": "无毒",
          "3": "有毒",
       }
       fmt.Println(steps2)
    
       //短声明字面创建map
       steps3 := map[string]string{
          "第一": "有毒",
          "第二": "无毒",
          "第三": "有毒",
       }
       //添加map
       fmt.Println(steps3)
       steps3["第四"] = "无毒"
       //更新map
       fmt.Println(steps3)
       steps3["第四"] = "有毒"
       //获取map
       fmt.Println(steps3["第四"])
       //删除map
       delete(steps3, "第三")
       fmt.Println(steps3)
       fmt.Println("")
       //取值、判断键是否存在
       v2 := step["第三"]    //直接用v2去step相应key的value
       fmt.Println(v2)
       v3, ok := steps3["第三"]    //多添加了个bool值看是否存在
       fmt.Println(ok)
       fmt.Println(v3)
       v4, ok := steps3["第四"]
       fmt.Println(ok)
       fmt.Println(v4)
    
       //for range map(遍历map)
       for key, value := range steps3 {
          fmt.Printf("key:%s,value:%s\n", key, value)
       }
    
       //len()获取map长度
       fmt.Println(len(steps3))
    }
PREV
[Golang基础语法] 数组与切片
NEXT
[Golang基础语法] if语句

评论(0)

发布评论