[go學習筆記]7、Map聲明、元素訪問及遍歷

Map聲明

m := map[string]int{"one":1,"two":2,"three":3}

m1 := map[string]int{}

m1["one"] = 1

m2 := make(map[string]int, 10 /*Initial Capacity*/)

複製代碼

Map元素的訪問

在訪問的Key不存在時,仍會返回零值,不能經過返回nil來判斷元素是否存在shell

func TestAccessNotExistingKey(t *testing.T) {
	m1 := map[int]int{}
	t.Log(m1[1])
	m1[2] = 0
	t.Log(m1[2])
	m1[3] = 0 //能夠註釋此行代碼查看運行結果
	if v,ok:=m1[3];ok{
		t.Logf("key 3's value is %d",v)
	}else {
		t.Log("key 3 is not existing.")
	}
}
複製代碼

輸出ui

=== RUN   TestAccessNotExistingKey
--- PASS: TestAccessNotExistingKey (0.00s)
    map_test.go:20: 0
    map_test.go:22: 0
    map_test.go:25: key 3's value is 0
PASS

Process finished with exit code 0
複製代碼

Map 遍歷

示例代碼spa

m := map[string]int{"one":1,"two":2,"three":3}
for k, v := range m {
  t.Log(k, v)
}
複製代碼
func TestTracelMap(t *testing.T) {
	m1 := map[int]int{1: 1, 2: 4, 3: 9}
	for k, v := range m1 {
		t.Log(k, v)
	}
}
複製代碼

輸出code

=== RUN   TestTracelMap
--- PASS: TestTracelMap (0.00s)
    map_test.go:34: 1 1
    map_test.go:34: 2 4
    map_test.go:34: 3 9
PASS

Process finished with exit code 0
複製代碼
相關文章
相關標籤/搜索