Go語言中對映表map的使用
1 概述
Go語言中的鍵值對(key->value)集合,稱之為對映map。對映map是變長型別,定義時不需要指定長度。對映map是無序的,遍歷是的順序不可期,原因是底層由hash表實現。 邏輯結構表示為:
2 建立語法
var m = map[key_type]value_type{key1: value1, key2: value2} var m = make(map[key_type]value_type) // 示例,字串型下標,字串型值: var m = make(map[string]string) //make()會分配記憶體空間,初始化。 m["east"] = "東" m["west"] = "西" // 直接初始化 var m = map[string]string{"east": "東", "west": "西"}
3 []下標操作
與陣列型別,使用下標完成對映元素的訪問。
var m = map[string]string{"east": "東", "west": "西"} fmt.Println(m["east"]) // 東 fmt.Println(m["west"]) // 西
4 for-range
for k, v := range mapVar { fmt.Println(k, v) }
遍歷的順序不可期。
5 對映是引用型別
切片為引用型別,因此切片的預設初始值為nil。 同時複製時為引用傳遞,修改會相互影響。
6 檢測元素是否存在
通過key獲取元素時,使用第二個變數,可以接收到當前key是否存在的布林值。
var m = map[string]string{"east": "東", "west": "西"} value, exists := m["south"] // value: 東, exists: true value, exists := m["south"] // value: , exists: false
7 delete 刪除元素
delete(map, key),刪除 map 中,指定的 key。如果 key 不存在,該操作不會產生錯誤。
var m = map[string]string{"east": "東", "west": "西"} delete(m, "west") fmt.Println(m) // map[east:東]
8 鍵值對調
如果 map 的值型別可以作為 key 且所有的 value 是唯一的,那麼通過下面的方法可以做到鍵值對調:
var m = map[string]string{"east": "東", "west": "西"} for k, v := range m { m[v] = k }
完! 原文出自: ofollow,noindex" target="_blank">小韓說課
微信關注:小韓說課