go基礎(10)map

定義

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進行取值就是有序的了

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容