golang中map增删改查的示例代码

 更新时间:2023年11月26日 16:21:59   作者:初辰ge  
在Go语言中,map是一种内置的数据结构,用于存储键值对,本文主要介绍了golang中map增删改查的示例代码,具有一定的参考价值,感兴趣的可以了解一下

map 一种无序的键值对, 它是数据结构 hash 表的一种实现方式。map工作方式就是:定义键和值,并且可以获取,设置和删除其中的值。

声明

// 使用关键字 map 来声明
bMap := map[string]int{"key1": 18}
// 使用make来声明
cMap := make(map[string]int)
cMap["key2"] = 19
fmt.Println("bMap:", bMap)
fmt.Println("cMap:", cMap)

上面程序用两种方式创建了两个 map,运行结果如下:

bMap: map[key1:18]
cMap: map[key2:19]

检索键的值

检索 Map元素的语法为map[key]

aMap := make(map[string]int)
aMap["key1"] = 18
aMap["key2"] = 19
fmt.Println("aMap:", aMap)
fmt.Println("aMapkey2:", aMap["key2"])
fmt.Println("aMapkey3:", aMap["key3"])

当map中不存在该key时,该映射将返回该元素类型的零值。所以以上程序输出为:

aMap: map[key1:18 key2:19]
aMapkey2: 19
aMapkey3: 0 

检索键是否存在

检索键是否存在的语法为value, ok := map[key]

aMap := make(map[string]int)
aMap["key1"] = 18
aMap["key2"] = 19
value, ok := aMap["key3"]
if ok {
	fmt.Println("key3", value)
} else {
	fmt.Println("key3", "no")
}

ok的值为map中是否存在该key,存在为true,反之为false。所以以上程序输出为:key3 no

遍历 Map中的所有元素

可以用for循环的range形式用于迭代 Map的所有元素。

aMap := make(map[string]int)
aMap["key1"] = 18
aMap["key2"] = 19
for key, value := range aMap {
	fmt.Printf("aMap[%s] = %d\n", key, value)
}

以上程序输出为:

aMap[key1] = 18
aMap[key2] = 19

因为 map 是无序的,因此对于程序的每次执行,不能保证使用 for range 遍历 map 的顺序总是一致的,而且遍历的顺序也不完全与元素添加的顺序一致。

从 Map中删除元素

delete(map, key) 用于删除 map 中的键。delete 函数没有返回值。

aMap := make(map[string]int)
aMap["key1"] = 18
aMap["key2"] = 19
fmt.Println("map before deletion", aMap)
delete(aMap, "key1")
fmt.Println("map after deletion", aMap)

以上程序输出为:

map before deletion map[key1:18 key2:19]
map after deletion map[key2:19]

到此这篇关于golang中map增删改查的示例代码的文章就介绍到这了,更多相关golang map增删改查内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 图文详解Go中的channel

    图文详解Go中的channel

    Channel是go语言内置的一个非常重要的特性,也是go并发编程的两大基石之一,下面这篇文章主要给大家介绍了关于Go中channel的相关资料,需要的朋友可以参考下
    2023-02-02
  • Go语言中排序的3种实现方法

    Go语言中排序的3种实现方法

    在写代码过程中,排序是经常会遇到的需求,这篇文章主要为大家介绍三种常用的方法,文中的示例代码简洁易懂,需要的小伙伴可以参考下
    2023-08-08
  • Go语言中字符串的查找方法小结

    Go语言中字符串的查找方法小结

    这篇文章主要介绍了Go语言中字符串的查找方法小结,示例的main函数都是导入strings包然后使用其中的方法,需要的朋友可以参考下
    2015-10-10
  • 详解Golang中Channel的原理和使用技巧

    详解Golang中Channel的原理和使用技巧

    Channel管道提供了一种机制,它在两个并发执行的协程之间进行同步,并通过传递与该管道元素类型相符的值来进行通信。本文主要介绍了Channel的原理和使用技巧,需要的可以参考一下
    2022-11-11
  • Go语言中的自定义类型你了解吗

    Go语言中的自定义类型你了解吗

    自定义类型是 Go 语言中非常重要的概念之一,通过自定义类型,我们可以更好地封装数据、组织代码,提高程序的可读性和可维护性。本文将从以下几个方面介绍 Go 自定义类型的相关知识,感兴趣的可以了解一下
    2023-04-04
  • 分布式架构在Go语言网站的应用

    分布式架构在Go语言网站的应用

    分布式架构是目前应对高流量、高并发的重要解决方案,分布式架构的核心思想是分而治之,将单台服务器的资源划分为多台服务器进行协同完成,分布式架构应用于Go语言网站中既能提升服务速度,又能降低了服务器宕机的风险
    2024-01-01
  • Golang项目在github创建release后自动生成二进制文件的方法

    Golang项目在github创建release后自动生成二进制文件的方法

    这篇文章主要介绍了Golang项目在github创建release后如何自动生成二进制文件,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-03-03
  • Go语言运算符案例讲解

    Go语言运算符案例讲解

    这篇文章主要介绍了Go语言运算符案例讲解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-07-07
  • Go语言正则表达式的使用详解

    Go语言正则表达式的使用详解

    正则表达式是一种进行模式匹配和文本操纵的功能强大的工具。这篇文章主要介绍了Go正则表达式使用,本文给大家介绍的非常详细,对大家的工作或学习具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-03-03
  • Golang 实现Socket服务端和客户端使用TCP协议通讯

    Golang 实现Socket服务端和客户端使用TCP协议通讯

    这篇文章主要介绍了Golang 实现Socket服务端和客户端使用TCP协议通讯,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-12-12

最新评论