Golang中的map数据类型

map是一堆键值对的未排序集合;

在Go语言中,使用map不需要引入库,它是一种内置的数据类型。

package main
import "fmt"
 
type PersonInfo struct {
    ID string
    Name string
}
 
func main() {
var personDB map[string] PersonInfo  
    personDB = make(map[string] PersonInfo)  
    // 往这个map里插入几条数据
    personDB["1"] = PersonInfo{"1", "张飞"}  
    personDB["2"] = PersonInfo{"2", "赵云"}  
    // 从这个map查找键为"1"的信息
    person, ok := personDB["1"]  
    // ok是一个返回的bool型,返回true表示找到了对应的数据
    if ok {
fmt.Println("找到数据,名字为", person.Name)  
    } else {
        fmt.Println("没有找到键值为1的数据")  
    }  
}

变量声明

var personDB map[string] PersonInfo

其中,personDB是声明的map变量名,string是键的类型,PersonInfo则是其中所存放的值的类型。

我们也可以使用内置函数make()来创建:

personDB = make(map[string] PersonInfo)

指定map的存储能力:

personDB = make(map[string] PersonInfo,50)

在创建时初始化:

personDB = map[string] PersonInfo{
  "1": PersonInfo{"1", "张飞"},
}

元素赋值:

    personDB["1"] = PersonInfo{"1", "张飞"}  
    personDB["2"] = PersonInfo{"2", "赵云"} 

元素删除:

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

delete(personDB,"1")

上述代码将删除键为“1”的值,如果“1”不存在,将什么都不发生。

元素的查找

    person, ok := personDB["1"]  
    // ok是一个返回的bool型,返回true表示找到了对应的数据
    if ok {
fmt.Println("找到数据,名字为", person.Name)  
    } else {
        fmt.Println("没有找到键值为1的数据")  
    } 

原创内容,如需转载,请注明出处;

本文地址: https://www.perfcode.com/p/1118.html

分类: 计算机技术
推荐阅读:
Python计算卡特兰数(catanlan number) 卡特兰数(Catalan number),是组合数学中一种常出现于各种计数问题中的数列;本文使用Python来计算卡特兰数;
Python filter()函数 在Python中,filter()是一个内置函数,它有两个参数:一个函数和一个可迭代对象(比如列表、元组或集合)。它会对可迭代对象中的每个元素调用给定的函数,并返回一个新的可迭代对象,其中只包含符合条件的元素。
C语言strncpy()函数:复制字符串中的n个字符 strncpy()是C语言标准库中的一个字符串复制函数,用于将一个字符串的n个字符复制到另一个字符串中;
使用pyi-bindepend工具查看EXE文件的依赖库 pyi-bindepend.exe工具是PyInstaller的一个附属工具,其功能是获得EXE文件运行时需要的依赖文件,当丢失这些文件时,程序无法运行。
Linux系统中删除特定文件外的所有文件 有这么个场景,如果你想删除某个目录下除了指定文件外的所有文件,你会怎么做呢?在Linux系统下,你可以只需要一条命令就可实现这个功能;
Python round()函数 在 Python 中,round() 函数用于将一个浮点数四舍五入到指定的小数位数。它可以接受两个参数:要四舍五入的浮点数和指定的小数位数(默认为 0)。