zoukankan      html  css  js  c++  java
  • Go语言学习之Map

    Map定义

    Map创建

    map[KeyType]ValueType
    //KeyType代表 key的类型,例如string,int等
    //ValueType代表values的类型,例如string,int等

    使用make函数创建map,map类型的变量初始值是nil,需要使用make()函数来分配内存

    make(map[KeyType]ValueType, cap)
    //其中cap表示map的容量,比如这个map里可以放8对儿KeyValues对儿
    //cap不是必须的

    Map基本使用

    func main(){
        scoreMap := make(map[string]int,8)  //使用Make创建一个key是string类型,value是int类型,容量为8的 Map
        scoreMap["张三"] = 90   //给scoreMap创建一个Key为张三,Value为90的值
        scoreMap["李四"] = 100 //给scoreMap创建一个Key为李四,Value为100的值
        fmt.Println(scoreMap)          //打印这个Map
        fmt.Println(scoreMap["张三"])  //获取这个Map里张三对应的Value
        fmt.Printf("类型为: %T 
    ",scoreMap) //打印scoreMap的类型
    }
    
    结果:
    map[张三:90 李四:100]
    90
    类型为: map[string]int 

    Map在声明的时候就初始化

    func main() {
        userInfo := map[string]string{
            "username": "pprof.cn",
            "password": "123456",
        }
        fmt.Println(userInfo) 
    }
    
    
    结果:
    map[password:123456 username:pprof.cn]

    Map判断某个Key是否存在

    语法

     value, ok := map[key]
    
    //Map通过Key获取value的时候有两个返回值:
    //一个是value,如果value不存在就返回nil,不会报错
    //一个是 ok,如果value存在ok=true,否则ok=false,可以通过ok是否为true 来判断value是不是存在

    示例:

    func main(){
        scoreMap := make(map[string]int,8)
        scoreMap["张三"] = 90
        scoreMap["李四"] = 100
    
        v,ok := scoreMap["张三"]  //会返回两个返回值,一个是value,一个是ok是true或者false
        fmt.Println(v,ok)  
        if ok {
            fmt.Println(v)
        } else{
            fmt.Println("value 不存在")
        }
    }
    结果:
    90 true 90

    Map的遍历

    func main(){
        scoreMap := make(map[string]int,8)
        scoreMap["张三"] = 90
        scoreMap["李四"] = 100
        scoreMap["王五"] = 110
        for k,v := range scoreMap{
            fmt.Println(k, v)  //打印出key value
        }
    
    结果:
    
    张三 90
    李四 100
    王五 110

    使用delete()内建函数从map中删除一组KeyValue

    语法

    delete(map, key)

    //map表示要删除KeyValue的map

    //key表示要删除键值对的Key

    示例

    func main(){
        scoreMap := make(map[string]int,8)
        scoreMap["张三"] = 90
        scoreMap["李四"] = 100
        scoreMap["王五"] = 110
        fmt.Println("-------删除前--------")
        fmt.Println(scoreMap)
        delete(scoreMap, "张三")
        fmt.Println("-------删除后--------")
        fmt.Println(scoreMap)
    }
    
    结果:
    -------删除前--------
    map[张三:90 李四:100 王五:110]
    -------删除后--------
    map[李四:100 王五:110]
  • 相关阅读:
    java 线程状态和转化
    初学Spring
    unittest --- 单元测试
    Python单例模式的两种实现方式
    python records操作数据库
    数据可视化之——matplotlib基础学习
    python使用list维护成一个队列
    Python将list列表维护成一个栈
    Python使用rsa模块实现非对称加密与解密
    python +OpenCV实现rtmp视频流媒体的播放
  • 原文地址:https://www.cnblogs.com/chadiandianwenrou/p/13804243.html
Copyright © 2011-2022 走看看