Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Go语言中的map(集合)操作

Go语言中的map(集合)操作

原创
作者头像
似水流年o
发布于 2022-01-11 11:14:11
发布于 2022-01-11 11:14:11
1.1K00
代码可运行
举报
文章被收录于专栏:编程学习收获编程学习收获
运行总次数:0
代码可运行

map:

1.定义

key-value形式数据存储数据结构JAVAmap作用是一样的。

2.map入门操作

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
	//map的声明(定义)
	var m map[string]int
	//map的初始化
	m = make(map[string]int)
	//map中添加数据
	m["age"] = 100
	//打印map数据
	fmt.Printf("%v", m)

注意:

1.map声明map初始化非同一个概念。未初始化mapnilnilmap不允许往里面添加值,否则会出现(panic: assignment to entry in nil map)错误,但是可以取得到默认值

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    //map的声明(定义),不初始化
	var m map[string]int
	fmt.Printf("%v\n", m["age"]) //能够打印0
	m["age"] = 100               //报错 panic: assignment to entry in nil map
	fmt.Printf("%v\n", m) //不执行

2.所谓的nil可以理解成空指针它不指向任何内存地址,而make()方法则是为map分配内存地址。

3.make()可以用来初始化map,也可以map声明时候直接初始化

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
	//声明+初始化
	m := map[string]int{"age": 10}
	fmt.Printf("%v\n", m["age"]) //10
	m["sex"] = 0                 //设置sex=0
	fmt.Printf("%v\n", m)        //map[age:10 sex:0]

3.map增删改查操作

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制

	//声明map
	var m map[string]string
	//初始化map
	m = make(map[string]string)
	
	//map增加数据
	m["name"] = "mongobx"
	m["age"] = "18"
	m["sex"] = "male"
	fmt.Printf("%v\n", m) //map[age:18 name:mongobx sex:male]

	//map删除数据
	delete(m, "sex")
	fmt.Printf("%v\n", m) //map[age:18 name:mongobx]

	//map修改数据
	m["age"] = "22"
	fmt.Printf("%v\n", m) //map[age:22 name:mongobx]

	//map查询数据(三种)
	//查询1
	name := m["name"]
	fmt.Printf("%v\n", name) //mongobx

	//查询2
	name, ok := m["name"]           //name存在ok为true,否则为false
	fmt.Printf("%v-%v\n", name, ok) //mongobx-tru
	
	//查询3
	_, ok := m["name"]
	fmt.Printf("%v\n", ok) //true
	

4.map的遍历:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//声明map
var m map[string]string
//初始化map
m = make(map[string]string)
//map添加数据
m["name"] = "mongobx"
m["age"] = "18"
m["sex"] = "male"
fmt.Printf("%v\n", m)

//遍历key
for key := range m {
   fmt.Printf("%v\n", key)
}

//遍历value
for _, value := range m {
   fmt.Printf("%v\n", value)
}

//遍历key,value
for key, value := range m {
   fmt.Printf("%v-%v\n", key, value)
}

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
快速掌握 Go 语言中的集合(map)
我本来下午打算对新系统,好好研究下模块划分,但因为上一个版本提测,于是我改了一个下午的bug。
机智的程序员小熊
2020/05/12
3370
Go语言学习(二)
现在互联网的资源很多,所以对比学习很有必要,可以参考不同的教材Step by Step的学习,每天都有一点收获,而后才能真正的学有所用。
呱牛笔记
2023/05/02
2270
Go语言学习(二)
我为什么放弃Go语言?
👉腾小云导读 你在什么时候会产生“想要放弃用 Go 语言”的念头?也许是在用 Go 开发过程中,接连不断踩坑的时候。本文作者提炼和总结《100 Go Mistakes and How to Avoid Them》里的精华内容,并结合自身的工作经验,盘点了 Go 的常见典型错误,撰写了这篇超全避坑指南。让我们跟随文章,一起重拾用 Go 的信心~ 👉目录 1 注意 shadow 变量 2 慎用 init 函数 3 embed types 优缺点 4 Functional Options Pattern 传递参数
腾讯云开发者
2023/06/06
1.8K0
我为什么放弃Go语言?
​go语言的31个坑
在其他大多数语言中,{的位置你自行决定。Go比较特别,遵守分号注入规则(automatic semicolon injection):编译器会在每行代码尾部特定分隔符后加;来分隔多条语句,比如会在 )后加分号:
阿兵云原生
2023/02/16
7750
Go Map 【Go语言圣经笔记】
哈希表是一种巧妙并且实用的数据结构。它是一个无序的key/value对的集合,其中所有的key都是不同的,然后通过给定的key可以在常数时间复杂度内检索、更新或删除对应的value。
Steve Wang
2021/12/06
7690
Go Map 【Go语言圣经笔记】
Go Map(集合)和sync.Map
Go语言中的Map是一种无序的键值对集合。Map可以通过key在O(1)的时间复杂度内进行查询、更改、删除操作,key到value间的映射由哈希函数实现。Go的Map相当于C++的Map,Java的HashMap,Python的Dict。
Steve Wang
2020/12/23
1.9K0
Golang map 三板斧第二式:注意事项
map 使用起来非常方便,但也有些必须要注意的地方,否则可能会导致程序异常甚至 panic。
恋喵大鲤鱼
2020/11/12
1.3K0
Go语言入门(五)结构体&练习
结构体&练习 结构体 定义 Go中的面向对象是通过 struct来实现的,struct是用户自定义的类型 //定义结构体 /定义结构体 type User struct { Name string Gender string Age int AvatarUrl string } func useStruct() { //初始化结构体1 var user1 User user1.Name = "jeson" user1.Ge
alexhuiwang
2020/09/24
6280
Go语言中的Array、Slice、Map和Set使用详解
Array(数组) 内部机制 在 Go 语言中数组是固定长度的数据类型,它包含相同类型的连续的元素,这些元素可以是内建类型,像数字和字符串,也可以是结构类型,元素可以通过唯一的索引值访问,从 0 开始。 数组是很有价值的数据结构,因为它的内存分配是连续的,内存连续意味着可是让它在 CPU 缓存中待更久,所以迭代数组和移动元素都会非常迅速。 数组声明和初始化 通过指定数据类型和元素个数(数组长度)来声明数组。 复制代码代码如下: // 声明一个长度为5的整数数组 var array [5]int 一旦数组
李海彬
2018/03/26
6910
Golang之旅33-map映射
切片的数据类型如果是map,则称之为slice of map,map切片。map的个数能够动态增加。
皮大大
2021/03/02
3660
Go语言入门(四)Map&函数
map&函数 map类型 map的申明和定义 map是一个key-value的数据结构,是引用类型的数据结构,需要初始化 初始化的时候容量可以定义,也可以不定义 map必须初始化才能使用,否则会panic var a map[key的类型]value的类型 func defineMap() { var user map[string]int = make(map[string]int) user["abc"] = 38 fmt.Printf("user:%v\n",user) a :
alexhuiwang
2020/09/24
4910
从应用层面细说map
在2万字图解map文章主要讲述了Go中map的是如何实现的。本文将从应用的角度来总结map使用过程中容易出现的问题,如何保证map并发读写,以及并发读写的优化。
数据小冰
2022/08/15
3980
从应用层面细说map
Go语言笔记----基础语法
defer关键字的功能类似于c++的析构函数,用defer关键字声明的函数,会在当前方法执行结束后被执行,并且执行顺序类似于栈的先进后出关系
大忽悠爱学习
2022/05/10
4660
Go语言笔记----基础语法
Go语言中的Array、Slice、Map和Set使用详解
Array(数组) 内部机制 在 Go 语言中数组是固定长度的数据类型,它包含相同类型的连续的元素,这些元素可以是内建类型,像数字和字符串,也可以是结构类型,元素可以通过唯一的索引值访问,从 0 开始。 数组是很有价值的数据结构,因为它的内存分配是连续的,内存连续意味着可是让它在 CPU 缓存中待更久,所以迭代数组和移动元素都会非常迅速。 数组声明和初始化 通过指定数据类型和元素个数(数组长度)来声明数组。 // 声明一个长度为5的整数数组 var array [5]int 一旦数组被声明了,那么它的数
李海彬
2018/03/22
3.9K0
100天精通Golang(基础入门篇)——第12天:深入解析Go语言中的集合(Map)及常用函数应用
本文是《100天精通Golang(基础入门篇)》系列的第12天,主要深入解析Go语言中的集合(Map)及常用函数的应用。文章从介绍什么是Map开始,然后详细讲解了Map的使用方法,包括使用make()函数创建map、delete()函数的使用、ok-idiom的应用、获取map的长度以及map作为引用类型的特点。此外,还提供了多个综合代码案例,帮助读者更好地理解和应用所学知识。通过本文的学习,读者将对Go语言中的集合(Map)有更深入的了解。
猫头虎
2024/04/08
2830
100天精通Golang(基础入门篇)——第12天:深入解析Go语言中的集合(Map)及常用函数应用
go语言基础语法入门
首先字节跳动已经全面拥抱了 go 语言,公司内部有上万个微服务使用 golang 来编写,不久前也开源了 GORPC 框架 KiteX。腾讯、百度、美团、滴滴、深信服、平安、OPPO、知乎、去哪儿、360、金山、微博、bilibili、七牛、PingCAP 等公司也在大量使用 Go 语言。 国外 Google Facebook 等公司也在大量使用 Go 语言。 从业务维度看过语言已经在云计算、微服务、大数据、区块链、物联网等领域蓬勃发展。然后在云计算、微服务等领域已经有非常高的市场占有率 Docker、Kubernetes、Istio、etcd、prometheus 几乎所有的云原生组件全是用 Go 实现的。
timerring
2023/10/13
2110
Go语言中的Map(字典)使用
在Go语言中,可以使用make函数或字面量语法定义和初始化Map。Map的键和值可以是任意类型,但键类型必须是可比较的。
数字扫地僧
2024/06/15
1530
Golang-Map
map是一种无序的基于key-value的数据结构,Go语言中的map是引用类型,必须初始化才能使用。
PayneWu
2020/12/18
5400
Golang-map、sync.map知识点汇总
map在go面试中几乎成了必问题了,哈哈,这里可以要把‘几乎’去掉。而且问题集中在map的底层实现,无序遍历等问题上,那么就结合map引申出一些常见的知识点汇总,当然这些都可以在网上找到一大把答案。
小许code
2023/02/08
8400
Golang-map、sync.map知识点汇总
Go语言中new和make你使用哪个来分配内存?
翻译出来就是:new是一个分配内存的内置函数,第一个参数是类型,而不是值,返回的值是指向该类型新分配的零值的指针。我们平常在使用指针的时候是需要分配内存空间的,未分配内存空间的指针直接使用会使程序崩溃,比如这样:
Golang梦工厂
2022/07/11
3660
相关推荐
快速掌握 Go 语言中的集合(map)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验