目录
一、声明
二、使用
1. 删除
2. 遍历
三、留坑
一、声明
var m1 map[string]string
m1 = map[string]string{}
m1["name"] = "Entin"
m1["sex"] = "male"
fmt.Println(m1) // map[name:Entin sex:male]
m2 := map[int]bool{}
fmt.Println(m2) // map[]
m2[1] = true
m2[2] = false
fmt.Println(m2) // map[1:true 2:false]
// --------------上下等价---------------
m2 := map[int]bool{1: true, 2: false}
fmt.Println(m2) // map[1:true 2:false]
m3 := make(map[int]interface{})
m3[1] = 1
m3[2] = false
m3[3] = "string"
m3[4] = []int{1, 2, 3}
fmt.Println(m3) // map[1:1 2:false 3:string 4:[1 2 3]]
二、使用
1. 删除
var m1 map[string]string
m1 = map[string]string{}
m1["name"] = "Entin"
m1["sex"] = "male"
fmt.Println(m1, len(m1)) // map[name:Entin sex:male] 2
delete(m1, "sex")
fmt.Println(m1, len(m1)) // map[name:Entin] 1
2. 遍历
m2 := make(map[string]interface{})
m2["a"] = 1
m2["b"] = false
m2["c"] = "string"
m2["d"] = []int{1, 2, 3}
for k, v := range m2 {
fmt.Println(k, v)
}
/*
输出结果:
a 1
b false
c string
d [1 2 3]
*/
三、留坑
1. 为什么map是无序的?
2. map的成倍扩容跟等量扩容?
|