【JKSJ49-7】map

108 阅读1分钟

map的初始化

代码如下所示:

func TestInitMap(t *testing.T) {
   m1 := map[int]int{1: 1, 2: 4, 3: 9}
   t.Log(m1[2])
   t.Logf("len m1=%d", len(m1))
   m2 := map[int]int{}
   m2[4] = 16
   t.Logf("len m2=%d", len(m2))
   m3 := make(map[int]int, 10)
   t.Logf("len m3=%d", len(m3))
}

map的初始值

1.map的key就算没初始化也能访问,初始值为0
2.可以用错误码的方式来区分是否有key

代码如下所示:

func TestAccessNotExistingKey(t *testing.T) {
   m1 := map[int]int{}
   t.Log(m1[1])
   m1[2] = 0
   t.Log(m1[2])
   if v, ok := m1[3]; ok {
      t.Logf("key 3's value is %d", v)
   } else {
      t.Log("key 3 is not existing")
   }
}

map的遍历

代码如下所示:

func TestTravelMap(t *testing.T) {
   m1 := map[int]int{1: 1, 2: 4, 3: 9}
   for k, v := range m1 {
      t.Log(k, v)
   }
}