MAP的定义(在应用之前必须先创立)
哈希表是一种数据结构。它是一个无序的key/value对的汇合,其中有的key都是不同的,而后通过给定的key能够在常数工夫复杂度内检索、更新和删除对应的value在GO语言中,一个map就是一个哈希表的援用,map类型能够写为map[key]value。map中所有的key都有雷同的类型,value也有着雷同的类型,key和value能够是不同的类型
ages := make(map[string]int) //mapping from strings to ints
ages :=map[string]int{ "alice":31, "charlie":34,}// 这相当于ages :=make(map[string]int)ages["ailce"] = 31
拜访map的一个元素
ages["alice"]
删除 key对应的 value
delete(args,"alice")
遍历 map
想要遍历map中全副的key/value对的话,能够应用range格调的for实现,和之前的slice遍历语言相似。map中的遍历并不是程序执行的,是随机的,如果想要程序遍历key/value对,咱们必须显示的对key进行排序,
for name,age range ages { fmt.Printf("%s\t%d\n",name,age)} // 程序的遍历mapimport "sort"var names []string//先把key取出来for index ,_ := range ages { names = append(names,index)}对key进行排序sort.Strings(names)查找出 key 对应的valuefor index,name :=range names { fmt.Printf("%s\t%d\n",name,ages[index]}
判断两个map是否有雷同的key和value
func equal(x,y map[sting]int)bool { if len(x) != len(y) { return false } for xIndex,xValue := range x { if yValue,ok := y[xIndex]; !ok ||yValue != xValue { return false } } return true}