Map声明、元素访问及遍历 - GO语言从入门到实战
Map 声明的方式
m := map[string]int{"one": 1, "two": 2, "three": 3}
//m初始化时就已经设置了3个键值对,所以它的初始长度len(m)是3。m1 := map[string]int{}
//m1被初始化为一个空的map,然后通过m1["one"] = 1添加了一个键值对,所以它的初始长度len(m1)是1。m2 := make(map[string]int, 10)
//使用make函数创建了一个具有初始容量10的map。这里的初始容量(capacity)并不是map的长度(len),但它决定了map可以在不重新分配内存的情况下存储的键值对的最大数量。也就是说,虽然指定了初始容量为10,但map的实际长度(即存储的键值对的数量)可以为0,并可以随着你添加键值对而增加,直到达到容量限制。欢迎关注云尔Websites CSDN博客
//len(m2)将返回0(因为你还没有向m2中添加任何键值对)。
这块知识一定要多敲代码,运行看看,才能加深理解。
代码示例:
package my_map import "testing" func TestInitMap(t *testing.T) { m1 := map[int]int{1: 2, 2: 3, 3: 4} if v, ok := m1[2]; ok { t.Logf("m1[2] = %d", v) } else { t.Error("Key 2 does not exist in m1") } t.Logf("len m1 = %d", len(m1)) m2 := map[int]int{} m2[4] = 16 t.Logf("len m2 = %d", len(m2)) m3 := make(map