Go语言中map是引用类型,用于存储键值对,支持动态增删改查。创建方式包括make函数和字面量初始化,未初始化的nil map不可赋值,否则引发panic。添加或修改元素通过键直接赋值;获取值时若键不存在返回零值;判断键是否存在使用双返回值语法;删除元素用delete函数。遍历map使用for-range循环,顺序无序,如需有序需手动排序。掌握map的基本操作是Go开发的基础。

在Go语言中,map是一种内置的引用类型,用于存储键值对(key-value pairs),类似于其他语言中的哈希表或字典。它支持动态增删改查,是日常开发中非常常用的数据结构之一。
map的创建
Go中创建map有多种方式,最常见的是使用make函数或字面量方式。
使用make创建map:
var m1 map[string]int // 声明但未初始化,值为nil
m2 := make(map[string]int) // 使用make初始化
m2[“age”] = 25
使用字面量直接初始化:
立即学习“go语言免费学习笔记(深入)”;
m3 := map[string]string{
“name”: “Alice”,
“city”: “Beijing”,
}
注意:未初始化的map(值为nil)不能直接赋值,否则会引发panic。必须先用make初始化。
map的基本操作
map支持常见的增、删、改、查操作,语法简洁直观。
添加或修改元素:直接通过键赋值即可。如果键存在则更新,不存在则新增。 m := make(map[string]int)
m[“score”] = 90 // 添加
m[“score”] = 95 // 修改 获取元素:通过键获取值。如果键不存在,会返回对应类型的零值。 value := m[“score”] // 获取值
fmt.Println(value) // 输出: 95 判断键是否存在:可以使用双返回值语法。 if val, exists := m[“score”]; exists {
fmt.Printf(“Found: %dn”, val)
} else {
fmt.Println(“Key not found”)
} 删除元素:使用delete函数。 delete(m, “score”) // 删除键为”score”的元素
map的遍历
使用for-range循环可以遍历map中的所有键值对。遍历顺序是无序的,每次运行可能不同。
m := map[string]int{
“a”: 1,
“b”: 2,
“c”: 3,
}
for key, value := range m {
fmt.Printf(“Key: %s, Value: %dn”, key, value)
}
如果只需要遍历键或值,可以省略不需要的部分:
// 只遍历键
for key := range m {
fmt.Println(“Key:”, key)
}
// 只遍历值
for _, value := range m {
fmt.Println(“Value:”, value)
}
map的遍历不保证顺序,如需有序输出,可将键单独提取并排序。
基本上就这些。map在Go中使用频率很高,掌握其创建、操作和遍历方式是基础中的基础。注意nil map不可写,遍历时不要依赖顺序,删除用delete,判断存在用双返回值,这些细节用多了就自然熟悉了。
以上就是Golangmap创建、操作及遍历方法的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1403715.html
微信扫一扫
支付宝扫一扫