Go语言Map的基本使用
1、定义Map
-
map[key]value形式申明
-
make方式申明
package main
import "fmt"
func main() {
m := map[string]string{"a": "1", "b": "2"} //冒号:定义
fmt.Println(m) //map[a:1 b:2]
m1 := make(map[string]string) //make关键字定义
fmt.Println(m1) //map[]
var m2 = make(map[string]string) //make关键字定义
fmt.Println(m2) //map[]
var m3 map[string]string
fmt.Println(m3) //map[]
fmt.Println(m3 == nil) //true
}
2、Map的遍历
使用range遍历(Map是无序的)
package main
import "fmt"
func main() {
m := map[string]string{"a": "1", "b": "2"} //冒号:定义
fmt.Println(m) //map[a:1 b:2]
for k, v := range m {
fmt.Println(fmt.Sprintf("key:%s, value:%s", k, v))
}
for k, _ := range m {
fmt.Println(fmt.Sprintf("key:%s", k))
}
for _, v := range m {
fmt.Println(fmt.Sprintf("value:%s", v))
}
}
3、根据key取value以及判断是否存在key
package main
import "fmt"
func main() {
m := map[string]string{"a": "1", "b": "2"} //冒号:定义
fmt.Println(m) //map[a:1 b:2]
a := m["a"] //1
fmt.Println(a)
c := m["c"] //""空串,并不会报错
fmt.Println(c)
//可以通过判断exist是否存在该key
d, exist := m["d"] //""空串,并不会报错
fmt.Println(d, exist)//根据exist是不是true判断是否存在
}
4、删除key
package main
import "fmt"
func main() {
m := map[string]string{"a": "1", "b": "2"} //冒号:定义
fmt.Println(m) //map[a:1 b:2]
delete(m, "a") //删除存在的key
fmt.Println(m) //map[b:2]
delete(m, "c") //删除不存在的key也不会报错
fmt.Println(m) //map[b:2]
}
5、可以作为Map的key的条件
-
map使用哈希表,必须可以比较相等
-
除了slice、map、function的内建类型都可以作为key
-
自定义的Struct类型,不包括slice、map、function字段,也可以作为key
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示