golang-map的基本操作

map的基本操作

map的定義方式

由于map是引用類型,所以在操作的時候葬毫,必須先初始化

方式一:

    var a map[string]int
    a = make(map[string]int, 16)
    fmt.Printf("a = %#v \n", a)
    a["stu01"] = 1000

方式二:

    a := map[string]int{
        "stu01": 100,
        "stu03": 300,
        "stu02": 200,
    }
    fmt.Printf("a = %#v \n", a)

判斷key是否存在

在獲取map的值得時候,可以接收兩個值,一個是獲取的值冶匹,一個是判斷是否存在的bool類型,如果存在咆瘟,返回對應(yīng)值嚼隘,bool為true,不存在袒餐,返回對應(yīng)類型的空值飞蛹,bool為false

func test3() {
    var a map[string]int
    a = make(map[string]int, 16)
    fmt.Printf("a = %#v \n", a)
    a["stu01"] = 1000
    a["stu02"] = 2000
    var result int
    var ok bool
    var key string = "stu04"
    result, ok = a[key]
    if ok == false {
        fmt.Printf("key is %s is not exist\n", key)
    } else {
        fmt.Printf("key is %s = %d \n", key, result)
    }
}

map的遍歷key,value

使用for ... range 的方法進(jìn)行遍歷灸眼,獲取當(dāng)中的值

func test4() {
    rand.Seed(time.Now().UnixNano())

    var a map[string]int
    a = make(map[string]int, 1024)
    for i := 0; i < 128; i++ {
        key := fmt.Sprintf("stu%d", i)
        value := rand.Intn(1000)
        a[key] = value
    }
    for key, value := range a {
        fmt.Printf("map[%s]=%d\n", key, value)
    }
}

map刪除元素

使用內(nèi)置的delete方法進(jìn)行刪除

func test5() {
    var a map[string]int
    a = make(map[string]int, 16)
    fmt.Printf("a = %#v \n", a)
    a["stu01"] = 1000
    a["stu02"] = 2000
    a["stu03"] = 3000
    fmt.Printf("a = %#v \n", a)
    delete(a, "stu02")
    fmt.Printf("DEL after a = %#v \n", a)
}

刪除所有的桩皿,需要用for循環(huán),挨個刪除

map的長度

使用len內(nèi)置函數(shù)求出

map的復(fù)制

map是引用類型幢炸,在系統(tǒng)中泄隔,復(fù)制的時候,指向的內(nèi)存地址是一樣的宛徊,所以修改一個佛嬉,其他的也會跟著變更

func test6() {
    var a map[string]int
    if a == nil {
        a = make(map[string]int, 16)
        a["stu01"] = 1000
        a["stu02"] = 2000
        a["stu03"] = 3000
        fmt.Printf("a = %#v \n", a)
        b := a
        b["stu01"] = 8888
        fmt.Printf("after modify a : %#v\n", a)
    }
}

map的切片

由于map的value可以是數(shù)組,或者int闸天,所以在value是數(shù)組的時候暖呕,使用的時候,也需要先初始化

func main() {
    rand.Seed(time.Now().UnixNano())
    var s []map[string]int
    s = make([]map[string]int, 5, 16)
    for index, value := range s {
        fmt.Printf("slice[%d] = %v \n", index, value)
    }
    fmt.Println()
    s[0] = make(map[string]int, 16)
    s[0]["stu01"] = 1000
    s[0]["stu02"] = 2000
    s[0]["stu03"] = 3000
    for index, value := range s {
        fmt.Printf("slice[%d] = %v \n", index, value)
    }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末苞氮,一起剝皮案震驚了整個濱河市湾揽,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌笼吟,老刑警劉巖库物,帶你破解...
    沈念sama閱讀 217,657評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異贷帮,居然都是意外死亡戚揭,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,889評論 3 394
  • 文/潘曉璐 我一進(jìn)店門撵枢,熙熙樓的掌柜王于貴愁眉苦臉地迎上來民晒,“玉大人精居,你說我怎么就攤上這事∏北兀” “怎么了靴姿?”我有些...
    開封第一講書人閱讀 164,057評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長磁滚。 經(jīng)常有香客問我空猜,道長,這世上最難降的妖魔是什么恨旱? 我笑而不...
    開封第一講書人閱讀 58,509評論 1 293
  • 正文 為了忘掉前任辈毯,我火速辦了婚禮,結(jié)果婚禮上搜贤,老公的妹妹穿的比我還像新娘谆沃。我一直安慰自己,他們只是感情好仪芒,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,562評論 6 392
  • 文/花漫 我一把揭開白布唁影。 她就那樣靜靜地躺著,像睡著了一般掂名。 火紅的嫁衣襯著肌膚如雪据沈。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,443評論 1 302
  • 那天饺蔑,我揣著相機(jī)與錄音锌介,去河邊找鬼。 笑死猾警,一個胖子當(dāng)著我的面吹牛孔祸,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播发皿,決...
    沈念sama閱讀 40,251評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼崔慧,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了穴墅?” 一聲冷哼從身側(cè)響起惶室,我...
    開封第一講書人閱讀 39,129評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎玄货,沒想到半個月后皇钞,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,561評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡誉结,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,779評論 3 335
  • 正文 我和宋清朗相戀三年鹅士,在試婚紗的時候發(fā)現(xiàn)自己被綠了券躁。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片惩坑。...
    茶點(diǎn)故事閱讀 39,902評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡掉盅,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出以舒,到底是詐尸還是另有隱情趾痘,我是刑警寧澤,帶...
    沈念sama閱讀 35,621評論 5 345
  • 正文 年R本政府宣布蔓钟,位于F島的核電站永票,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏滥沫。R本人自食惡果不足惜侣集,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,220評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望兰绣。 院中可真熱鬧世分,春花似錦、人聲如沸缀辩。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,838評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽臀玄。三九已至瓢阴,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間健无,已是汗流浹背荣恐。 一陣腳步聲響...
    開封第一講書人閱讀 32,971評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留累贤,地道東北人募胃。 一個月前我還...
    沈念sama閱讀 48,025評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像畦浓,于是被迫代替她去往敵國和親痹束。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,843評論 2 354