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

分类: 计算机技术
推荐阅读:
未定义标识符 CV_BayerGR2BGR 解决方法 CV_BayerGR2BGR 是 OpenCV 中的颜色转换常量,值为49,在文件 opencv2/imgproc/types_c.h 中定义;提示未定义标识符CV_BayerGR2BGR是因为没有引入opencv2/imgproc/types_c.h这个头文件;
Python实现插入排序(insertion sort) 插入排序(insertion sort)是一种比较简单的排序算法;其原理类似于对一手扑克牌进行排序;
Windows10查看WiFi密码 要在Windows10上查看当前所使用的WiFi密码,只需要依次打开【控制面板】【网络和Internet】【查看网络状态和任务】【点击当前WiFi属性】【无线属性】【安全】,选中显示字符即可查看;
C/C++程序打印输出中文导致乱码的解决方法 C/C++程序打印输出中文导致乱码的解决方法如下:
Go语言获取操作系统类型 在Go语言中,你可以使用runtime包来获取操作系统类型。具体来说,你可以使用runtime.GOOS来获取操作系统类型的字符串表示。
Rust env宏的用法和示例 在 Rust 中,env宏用于在编译时检查环境变量;该宏在编译时获取指定变量的值,返回一个&str类型,如果环境变量未定义,则会产生编译错误。