怎么使用Go语言的map
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章主要讲解了"怎么使用Go语言的map",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"怎么使用Go语言的map"吧!语法声明和初始化配合make使
千家信息网最后更新 2026年11月01日怎么使用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安全错误
数据库的锁怎样保障安全
花魁咖啡
南京欣网互联网络科技
涨乐互联网科技
没上市的科技互联网公司
互联网金融科技平台
互联网科技素材视频竖屏
互联网和高科技公司
互联网科技产品
中化能源互联网科技招聘
互联网科技项目计划书材料类
互联网金融中的现代科技
和信科技工业互联网
互联网科技公司营业执照怎么办理
互联网时代的科技公司
半导体是互联网高科技吗
35岁以上互联网科技行业
南京一网一红互联网科技有限公司
信承诺互联网科技有限公司
互联网高科技行业有哪些企业
广州三三互联网科技有限公司
互联网科技公司的优势
美国互联网科技巨头监管
互联网科技上市公司
沃里互联网科技
伴你行互联网科技有限公司
互联网科技网站
科技互联网大厂
互联网在线教育科技创业
互联网科技品牌
现代科技的标志之一的互联网