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]
}