Go Map基本操作-增删改查
go中的map是hash表的一个引用,类型写为:map[key]value,其中的key, value分别对应一种数据类型,如map[string]string
1.map初始化
package main import "fmt" func main() { //初始化 var m1 = make(map[interface{}]interface{}) m1["1"] = "c" m1["c1"] = 1 fmt.Println(m1) // m0 string var m0 map[string]string // 定义map类型变量m0,key的类型为string,value的类型string fmt.Println(m0) // 输出: map[] // m2 interface{} var m2 map[interface{}]string m2 = make(map[interface{}]string) //m1[[]byte("k2")]="v2" // panic: runtime error: hash of unhashable type []uint8 m2[123] = "123" m2[12.3] = "123" fmt.Println(m2) // map[123:123 12.3:123] // m3 数组 a3 := [3]int{1, 2, 3} var m3 map[[3]int]string m3 = make(map[[3]int]string) m3[a3] = "m2" fmt.Println(m3) // map[[1 2 3]:m2] // m4 可以,book1里面的元素都是支持== != struct type book1 struct { name string } var m4 map[book1]string fmt.Println(m4) // 输出: map[] }
2.map查找
v,ok :=m5["a"] //ok为bool值 if ok { fmt.Println(v) }
3.增加,修改
//增加修改 m6 := map[string]string{ "a": "va", "b": "vb", } m6["c"] = "11" //若key存在则是修改,不在则是增加 fmt.Println(m6)
4.删除
m7 := map[string]string{ "a": "va", "b": "vb", } delete(m7, "x") // 删除不存在的key,原m不影响 delete(m7, "a") // 删除存在的key fmt.Println(m7)
5.遍历元素
m8 := map[string]string{ "a": "va", "b": "vb", } for k, v := range m8 { fmt.Printf("k:[%v].v:[%v]\n", k, v) // 输出k,v值 }
6.获取字典个数
//获取个数 m9 := map[string]string{ "a": "va", "b": "vb", } fmt.Println(len(m9))
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了