zoukankan      html  css  js  c++  java
  • golang的map

    map--字典

    map的基本使用:

    package main
    
    import "fmt"
    
    // 先声明
    
    type PersonInfo struct {
    	id string
    	name string
    	addr string
    }
    func main()  {
    	// map是一堆键值对的未排序集合,就像python中的字典一样
    	var PersonDB map[string] PersonInfo
    	PersonDB = make(map[string] PersonInfo)
    
    	//往map中插入几条数据
    	PersonDB["wualin"] = PersonInfo{"001","wualin","xinyu"}
    	PersonDB["zhang"] = PersonInfo{"002","zhang","xiushui"}
    
    	// 从map中取数据,查找关键字为"wualin"的数据
    	person1 := PersonDB["wualin"]
    	fmt.Println(person1)
    	fmt.Println(person1.name) // 通过 . 取map中的数据
    
    	person2,ok := PersonDB["zhang"]
    	if ok{// ok是一个返回的bool类型,返回True则表示找到了对应的数据
    		fmt.Println(person2)
    	} else{
    		fmt.Println("没有找到zhang...")
    	}
    }
    
    • 变量声明

    map的声明基本上没有多余的元素,比如:

    var PersonDB map[string] PersonInfo
    

    PersonDB是map变量名,string是键的类型,PersionInfo则是其中存放值的类型

    • 创建:

    使用go语言内置的函数make()来创建一个新map,例:

    PersonDB = make(map[string] PersonInfo)
    

    也可以选择是否在创建时置顶该map的初始存储能力,例:

    PersonDB = make(map[string] PersonInfo,100)
    

    创建并初始化map,例:

    PersionDB = map[string] PersionInfo{
    "1234":PersionInfo{"1","wualin","xinyu"}
        }
    }
    
    • 元素赋值
    PersonDB["wualin"] = PersonInfo{"001","wualin","xinyu"}
    
    • 元素删除

    Go语言提供了一个内置函数delete(),用于删除容器内的元素

    delete(PersionDB,"wualin")
    

    如果键"wualin"不存在,那么这个调用将什么都不会发生

    • 元素查找

    根据关键字从map取数据,例:

    value,ok := PersionDB["wualin"]
    if ok{ // 找到了
        // 处理找到的value
        }
        
    }
    

    使用ok可以快速检查是否找到数据,不需要去判断value是否为空

  • 相关阅读:
    display:none;与visibility:hidden;的区别
    前端优化:雅虎35条
    JQ中find()和filter()的区别
    attr属性
    媒体查询器(转)@media screen and
    javascript解决URL (转)
    使用 js 处理 html entities(转)
    FileReader详解与实例---读取并显示图像文件
    HTML5中File对象初探
    createTextRange和createRange的一些用法(重点)
  • 原文地址:https://www.cnblogs.com/wualin/p/10643617.html
Copyright © 2011-2022 走看看