golang map筆記

Map


map是引用類型,map是一個集合,它基於鍵存儲的,鍵就像一個索引一樣,這也是Map強大的地方,可以快速快速檢索數據,鍵指向與該鍵關聯的值。

1. 聲明和初始化

make函數:

dict := make(map[string]string)

字面量方式創建和初始化map
dict := map[string]string{"name": "samy"}


創建空 map
dict := map[string]string{}


2. 使用map


Map的使用很簡單,和數組切片差不多,數組切片是使用索引,Map是通過鍵。
dict := make(map[string]int)
// 賦值
dict["張三"] = 43
// 獲取值
age := dict["張三"]
判斷鍵值是否存在,如是存在exists 等於trur,否則false

age,exists:= dict["李四"]

var dict map[string]int
    dict = make(map[string]int)
    dict["張三"] = 29
    dict["李明"] = 34

    if age,exists := dict["李明"]; exists {

        fmt.Println(age)
    } else {

        fmt.Println("key不存在")
    }


    刪除鍵值
    delete(dict,"張三")

    遍歷:
    for name,age  := range dict {

        fmt.Println(name,age)
    }


在函數間傳遞Map

map是引用類型,如果一個Map傳遞給一個函數,該函數對這個Map做了修改,那麼這個Map的所有引用,都會感知到這個修改

package main

import "fmt"

func modify(d map[string]int) {

    d["張三"] = 46
}

func main() {

    d := map[string]int {"李明":67,"張三": 47,"李四": 25}
    fmt.Println(d)
    modify(d)
    fmt.Println(d)
    //Output:
    //map[張三:47 李四:25 李明:67]
   //map[張三:46 李四:25 李明:67]

}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章