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增删改查内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • golang 检查网络状态是否正常的方法

    golang 检查网络状态是否正常的方法

    今天小编就为大家分享一篇golang 检查网络状态是否正常的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-07-07
  • go语言简单的处理http请求的函数实例

    go语言简单的处理http请求的函数实例

    这篇文章主要介绍了go语言简单的处理http请求的函数,实例分析了Go语言处理http请求的技巧,需要的朋友可以参考下
    2015-03-03
  • Go语言的IO库那么多纠结该如何选择

    Go语言的IO库那么多纠结该如何选择

    在Go语言中涉及 I/O 操作的内置库有很多种,比如: io 库, os 库, ioutil 库, bufio 库, bytes 库, strings 库等等。拥有这么多内置库是好事,但是具体到涉及 I/O 的场景我们应该选择哪个库呢,带着这个问题一起通过本文学习下吧
    2021-06-06
  • Golang中的int类型和uint类型到底有多大?

    Golang中的int类型和uint类型到底有多大?

    int和uint类型在我们日常开发中经常会用到,但有个疑问就是这两个类型有多大,通过各种尝试最终得到了答案,所以下面这篇文章主要给大家介绍了关于Golang中的int类型和uint类型到底有多大的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下。
    2017-12-12
  • 一个简单的Golang实现的HTTP Proxy方法

    一个简单的Golang实现的HTTP Proxy方法

    今天小编就为大家分享一篇一个简单的Golang实现的HTTP Proxy方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-08-08
  • Go语言中两个比较流行的缓存库使用示例

    Go语言中两个比较流行的缓存库使用示例

    缓存是计算机科学中的一个重要概念,设想某个组件需要访问外部资源,它向外部源请求资源,接收并使用资源,这些步骤都需要花费时间,下面这篇文章主要给大家介绍了关于Go语言中两个比较流行的缓存库使用的相关资料,需要的朋友可以参考下
    2024-04-04
  • Golang标准库之errors包应用方式

    Golang标准库之errors包应用方式

    Go语言的errors包提供了基础的错误处理能力,允许通过errors.New创建自定义error对象,error在Go中是一个接口,通过实现Error方法来定义错误文本,对错误的比较通常基于对象地址,而非文本内容,因此即使两个错误文本相同
    2024-10-10
  • Go语言空白表示符_的实例用法

    Go语言空白表示符_的实例用法

    在本篇内容里小编给大家整理的是一篇关于Go语言空白表示符_的实例用法,有兴趣的朋友们可以学习参考下。
    2021-07-07
  • go语言beego框架分页器操作及接口频率限制示例

    go语言beego框架分页器操作及接口频率限制示例

    这篇文章主要为大家介绍了go语言beego框架分页器操作使用示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步早日升职加薪
    2022-04-04
  • Go语言接口与多态详细介绍

    Go语言接口与多态详细介绍

    Go语言的接口类型是一组方法定义的集合,它体现了多态性、高内聚和低耦合的设计思想,接口通过interface关键字定义,无需实现具体方法,任何实现了接口所有方法的类型即视为实现了该接口,感兴趣的朋友一起看看吧
    2024-09-09

最新评论