Map字典
- Go语言中给的Map,其实就是一个映射的字典,可以根据一个
key
去找一个value
。 - Map是散列表的引用(哈希表),拥有键值对元素的无序集合,键是唯一的,可获取、更新、删除。
- 都是通过常量时间完成。
- 所有可比类型都能作为key。
- 如果Map的相应key不存在,但是被使用了,不会报错,会自动改成该
key
对应的value
对应类型的零值。 - Map一般创建的时候一定要初始化,因为Map是复杂数据类型,未初始化时值为
nil
,且未赋值不会在运行前报错,运行时才会有报错。 Map的普通用法:
func createmap() { //创建相同键值map steps := make(map[string]string) fmt.Println(steps) //创建不同键值map scores := make(map[string]int) fmt.Println(scores) //通过字面值创建map var steps2 = map[string]string{ "1": "有毒", "2": "无毒", "3": "有毒", } fmt.Println(steps2) //短声明字面创建map steps3 := map[string]string{ "第一": "有毒", "第二": "无毒", "第三": "有毒", } //添加map fmt.Println(steps3) steps3["第四"] = "无毒" //更新map fmt.Println(steps3) steps3["第四"] = "有毒" //获取map fmt.Println(steps3["第四"]) //删除map delete(steps3, "第三") fmt.Println(steps3) fmt.Println("") //取值、判断键是否存在 v2 := step["第三"] //直接用v2去step相应key的value fmt.Println(v2) v3, ok := steps3["第三"] //多添加了个bool值看是否存在 fmt.Println(ok) fmt.Println(v3) v4, ok := steps3["第四"] fmt.Println(ok) fmt.Println(v4) //for range map(遍历map) for key, value := range steps3 { fmt.Printf("key:%s,value:%s\n", key, value) } //len()获取map长度 fmt.Println(len(steps3)) }
评论(0)