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语言心跳超时的实现示例

    go语言心跳超时的实现示例

    本文主要介绍了go语言心跳超时的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-05-05
  • 浅析golang的依赖注入

    浅析golang的依赖注入

    这篇文章主要介绍了浅析golang的依赖注入,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-09-09
  • Go实现基于RSA加密算法的接口鉴权

    Go实现基于RSA加密算法的接口鉴权

    这篇文章主要介绍了Go实现基于RSA加密算法的接口鉴权,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-06-06
  • Go使用sync.Map来解决map的并发操作问题

    Go使用sync.Map来解决map的并发操作问题

    在 Golang 中 map 不是并发安全的,sync.Map 的引入确实解决了 map 的并发安全问题,本文就详细的介绍一下如何使用,感兴趣的可以了解一下
    2021-10-10
  • golang 使用sort.slice包实现对象list排序

    golang 使用sort.slice包实现对象list排序

    这篇文章主要介绍了golang 使用sort.slice包实现对象list排序,对比sort跟slice两种排序的使用方式区别展开内容,需要的小伙伴可以参考一下
    2022-03-03
  • Golang语言如何高效拼接字符串详解

    Golang语言如何高效拼接字符串详解

    最近在做性能优化,有个函数里面的耗时特别长,看里面的操作大多是一些字符串拼接的操作,而字符串拼接在 golang 里面其实有很多种实现,下面这篇文章主要给大家介绍了关于Golang语言如何高效拼接字符串的相关资料,需要的朋友可以参考下
    2021-11-11
  • 使用Golang轻松实现JWT身份验证的示例代码

    使用Golang轻松实现JWT身份验证的示例代码

    JSON Web Tokens (JWT)是一种流行的安全方法,用于在两个方之间表示声明,本文主要为大家详细介绍了实现Go应用程序中的JWT身份验证过程,需要的可以参考下
    2024-02-02
  • 浅析Go语言中闭包的使用

    浅析Go语言中闭包的使用

    闭包是一个函数和其相关的引用环境组合的一个整体。本文主要为大家介绍一下Go语言中闭包的使用,文中的示例代码讲解详细,对我们学习Go语言有一定帮助,需要的可以参考一下
    2022-12-12
  • 详解go-zero如何实现令牌桶限流

    详解go-zero如何实现令牌桶限流

    令牌桶算法既能够将所有的请求平均分布到时间区间内,又能接受服务器能够承受范围内的突发请求,因此是目前使用较为广泛的一种限流算法,本文就来看看go-zero如何实现令牌桶限流的吧
    2023-08-08
  • GoLang反射机制深入讲解

    GoLang反射机制深入讲解

    这篇文章主要介绍了GoLang反射机制,反射是一种让程序可以在运行时( runtime )检查其数据结构的能力,通过反射可以获取丰富的类型信息
    2022-12-12

最新评论