怎么使用Go语言的map
发表于:2025-01-18 作者:千家信息网编辑
千家信息网最后更新 2025年01月18日,这篇文章主要讲解了"怎么使用Go语言的map",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"怎么使用Go语言的map"吧!语法声明和初始化配合make使
千家信息网最后更新 2025年01月18日怎么使用Go语言的map
这篇文章主要讲解了"怎么使用Go语言的map",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"怎么使用Go语言的map"吧!
语法
声明和初始化
配合make使用,否则是nil
var map[KeyType]ValueType//KeyType:表示键的类型//ValueType:表示键对应的值的类型make(map[KeyType]ValueType, [cap])//cap表示map的容量,该参数虽然不是必须的,但是我们应该在初始化map的时候就为其指定一个合适的容量//当你的容量超过时会自动扩充
例子:
//1.声明var name1 map[int]string //key是int,value是stringvar name2 map[string]string //key是string,value是string//字面量names3:=map[int]string{0:"张三",1:"李四"}//2.分配内存name1 = make(map[int]string, 2) //2:map的容量,当你的容量超过时会自动扩充name2 = make(map[string]string, 2)//3.赋值//3.1 通过KeyType赋值name1[0]="张三" //key:0 value:张三name1[1]="李四" //key:1 value:李四name1[2]="王五" //key:2 value:王五 //已经超过了分配的的容量,会自动扩充name2["A"]="张三"name2["B"]="李四"
读取
根据KeyType来读取
如果keyType存在,就返回那个值,如果不存在,返回类型默认值值
fmt.Println(name1[0])fmt.Println(name2["B"])
测试map中key值是否存在
通过KeyType来取值时,会返回两个值,一个是vlue,另一个是是否存在的bool
if value, ok := name1[5]; ok { fmt.Println("存在这个值",value)} else { fmt.Println("不存在这个值", value)}
删除
delete(map[int]string,[KeyType])
例子
delete(name1 , 1)
遍历
range
例子:
for key,value:=range name1 { fmt.Printf("key=%d,value=%s\n",key,value)}for key,value:=range name2 { fmt.Printf("key=%s,value=%s\n",key,value)}
总结
map必须借助make分配内存空间,否则是nil
字面量初始化必修保证key是唯一的,否则error
map传递的是引用,就是说形参会改变实参的值
直接对map对象使用[]操作符获得的对象不能直接修改状态
map中存储指针而不是结构体
示例
package mainimport "fmt"func main() { //一、声明和初始化【配合make使用,否则是nil】 //1.声明 var name1 map[int]string //key是int,value是string var name2 map[string]string //key是string,value是string //2.分配内存 name1 = make(map[int]string, 2) //2:map的容量,当你的容量超过时会自动扩充 name2 = make(map[string]string, 2) //3.赋值 //3.1 通过KeyType赋值 name1[0] = "张三" //key:0 value:张三 name1[1] = "李四" //key:1 value:李四 name1[2] = "王五" //key:2 value:王五 //已经超过了分配的的容量,会自动扩充 name2["A"] = "张三" name2["B"] = "李四" //二、读取 // 1. 根据KeyType来读取,如果keyType存在,就返回那个值,如果不存在,返回类型默认值值 fmt.Println(name1[0]) fmt.Println(name2["B"]) // 2. 测试map中key值是否存在【通过KeyType来取值时,会返回两个值,一个是vlue,另一个是是否存在的bool】 if value, ok := name1[2]; ok { fmt.Println("存在这个值", value) } else { fmt.Println("不存在这个值", value) } //三、删除 delete(name1, 1) //删除了李四 delete(name2, "C") //没有这个C fmt.Println(name1) fmt.Println(name2) //四、遍历 for key,value:=range name1 { fmt.Printf("key=%d,value=%s\n",key,value) } for key,value:=range name2 { fmt.Printf("key=%s,value=%s\n",key,value) }}
感谢各位的阅读,以上就是"怎么使用Go语言的map"的内容了,经过本文的学习后,相信大家对怎么使用Go语言的map这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!
容量
李四
张三
分配
语言
类型
王五
例子
内存
学习
两个
内容
字面
对象
就是
测试
合适
参数
就是说
思路
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
RTN网络技术
化学期刊所属数据库
游戏服务器多长时间可以重启
数据库连接软件绿色中文版
数据库系统控制原理
威海线上办公软件开发
中国电科网络安全平台
荐客急聘网络技术
wiki导入数据库
高德地图未能激活移动数据库
软件开发外包服务好得
魔兽怀旧服经典服务器
什么是幼儿园网络安全教育
网络安全周亮点
工行西安软件开发中心待遇
数据库介于什么之间用什么函数
网络技术发展的作文
现代战争网络安全吗
长宁区网络技术咨询信息
保山学院计算机网络技术怎么样
dna数据库从哪来
无线异构网络技术
服务器漏洞扫描服务
c++连oracle数据库
电力自动化网络安全
网络安全训练营43讲视频
晋中网络技术联系方式
为什么找不到服务器
全文数据库搜索网站
风电场网络安全防护检查报告