這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。
目錄
-
- Map
- 建立 Map
- Setter 和 Getter
- Size
- 刪除一個元素
- Map 嵌套
- 檢查鍵是否存在
- 遍曆
摘要
建立 Map,make,setter,getter,size,delete,檢查鍵的存在,遍曆
Map
建立 Map
定義後再初始化
var m1 map[int]stringm1 = map[int]string{} //m1 map[]
使用 make 函數
格式為
make([keyType]valueType, cap)
容量可以省略
var m2 map[int]string = make(map[int]string)
使用簡寫
m3 := make(map[int]string)
Setter 和 Getter
Setter
m3[1] = "a" //m3 map[1:a]
這裡的 “1” 是 key,不是索引
Getter
a := m3[1]b := m3[2]fmt.Println("a", a) //a afmt.Println("b", b) //b
擷取不存在的 key 時返回空
Size
var l = len(m3)
刪除一個元素
delete(m3, 1)fmt.Println("a", a) //a afmt.Println("m3", m3) //m3 map[]
Map 嵌套
一個 Map 的 Value 是另一個 Map
var m map[int]map[int]string = make(map[int]map[int]string)m[1] = make(map[int]string)m[1][1] = "a"fmt.Println("m", m) //m map[1:map[1:a]]fmt.Println("m[1]", m[1]) //m[1] map[1:a]
檢查鍵是否存在
使用簡寫方式同時返回多個值時,map 返回的第二個參數是布爾值,表示鍵是否存在
m3[1] = "a"m3[2] = "b"v, exist := m3[3] //第二個參數為布爾值,表示鍵是否存在fmt.Println("v", v) //vfmt.Println("exist", exist) //exist false
遍曆
for k, v := range m3 { fmt.Println(k, v)}
其中 k 為鍵,如果想忽略 k 的使用可以使用預留位置”_”
//忽略值for k := range w { fmt.Print(k)}//忽略鍵for _, v := range w { fmt.Print(v)}