go基礎(chǔ)(10)map

定義

Map 是一種無(wú)序的鍵值對(duì)的集合。Map 最重要的一點(diǎn)是通過 key 來(lái)快速檢索數(shù)據(jù),key 類似于索引,指向數(shù)據(jù)的值
定義方式:
mapCity := make(map [string]int)
mapCity: map集合名
make關(guān)鍵字
map關(guān)鍵字
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)
    }
}

說(shuō)明:因?yàn)閙ap是無(wú)序的所以打印出來(lái)的值 不一定會(huì)按照city1到city4的順序來(lái)

獲取map某一鍵的值

val,ok := cityMap["city3"]
說(shuō)明:ok是一個(gè)布爾值,如果存在 cityMap["city3"]就返回true,否則返回false;val是在map中鍵city3對(duì)應(yīng)的值,如果不存在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("不存在")
    }
}
//結(jié)果為不存在

根據(jù)map鍵刪除

delete(MAP,KEY)
MAP:集合名;KEY:要?jiǎng)h除的鍵

func main() {
    nameMap := make(map[string]string)
    nameMap["石家莊"] = "趙子龍"
    nameMap["保定"] = "高漸離"
    delete(nameMap,"石家莊")
    for k, v := range nameMap {
        fmt.Println(k,v)
    }
}
//打印只有 保定 高漸離

注:如果刪除傳遞的鍵不存在或者為nil,delete不會(huì)進(jìn)行任何操作

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)//對(duì) 字符類型的切片進(jìn)行排序
    for _, v := range keys {
        fmt.Println(v, nameMap[v])
    }
}

說(shuō)明:map本身是無(wú)序的,想要進(jìn)行排序,先把map所有的key都拿出來(lái)放到切片里面去,然后通過切片的sort內(nèi)置方法對(duì)切片進(jìn)行排序,排完之后再拿出切片里面的值當(dāng)做map的key進(jìn)行取值就是有序的了

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容