定義
Map 是一種無序的鍵值對的集合。Map 最重要的一點是通過 key 來快速檢索數據,key 類似于索引,指向數據的值
定義方式:
mapCity := make(map [string]int)
mapCity: map集合名
make關鍵字
map關鍵字
string: 鍵的類型
int: 值的類型
func main() {
cityMap := make(map[string]int)
cityMap["city1"] = 11
cityMap["city2"] = 22
cityMap["city3"] = 33
cityMap["city4"] = 44
for k,v := range cityMap{
fmt.Println(k,v)
}
}
說明:因為map是無序的所以打印出來的值 不一定會按照city1到city4的順序來
獲取map某一鍵的值
val,ok := cityMap["city3"]
說明:ok是一個布爾值,如果存在 cityMap["city3"]就返回true,否則返回false;val是在map中鍵city3對應的值,如果不存在cityMap["city3"]就返回0
func main() {
cityMap := make(map[string]int)
cityMap["city1"] = 11
val,ok := cityMap["city5"]
if ok {
fmt.Println(val)
}else {
fmt.Println("不存在")
}
}
//結果為不存在
根據map鍵刪除
delete(MAP,KEY)
MAP:集合名;KEY:要刪除的鍵
func main() {
nameMap := make(map[string]string)
nameMap["石家莊"] = "趙子龍"
nameMap["保定"] = "高漸離"
delete(nameMap,"石家莊")
for k, v := range nameMap {
fmt.Println(k,v)
}
}
//打印只有 保定 高漸離
注:如果刪除傳遞的鍵不存在或者為nil,delete不會進行任何操作
map排序
func main() {
nameMap := make(map[string]string)
nameMap["aaa"] = "a1"
nameMap["bbb"] = "b2"
nameMap["ccc"] = "c3"
nameMap["ddd"] = "d5"
nameMap["eee"] = "e6"
keys := make([]string, 0)
for k := range nameMap {
keys = append(keys, k)
}
sort.Strings(keys)//對 字符類型的切片進行排序
for _, v := range keys {
fmt.Println(v, nameMap[v])
}
}
說明:map本身是無序的,想要進行排序,先把map所有的key都拿出來放到切片里面去,然后通過切片的sort內置方法對切片進行排序,排完之后再拿出切片里面的值當做map的key進行取值就是有序的了