Map
- map以key-value的形式存儲
- key必須是支持==或者!=比較運算的類型庆亡,不能是函數(shù)、map或slice
- map查找比線性搜索快很多卤恳,但比使用索引訪問數(shù)據(jù)的類型慢
- map使用make()創(chuàng)建秸歧,支持:=這種方式
- make(map[key類型]value類型)
- 超出容量時會自動擴容灾锯,使用len()獲取元素個數(shù)
- 簡直對不存在時葬凳,自動添加绰垂,使用delete()刪除某鍵值對
func main() {
m1 := make(map[int]string)
m1[0] = "OK"
fmt.Println(m1)
delete(m1, 0)
fmt.Println(m1)
}
- map嵌套map時,make只會初始化第一層map火焰,第二層map也需要單獨初始化
func main() {
m1 := make(map[int]map[int]string)
a, ok := m1[2][1]
if !ok {
m1[2] = make(map[int]string)
}
m1[2][1] = "value"
a, ok = m1[2][1]
//value true
fmt.Println(a, ok)
}
- 使用 for range 對map和slice進行迭代操作
func main() {
m1 := make(map[int]string)
for i := 0; i < 10; i++ {
m1[i] = strconv.Itoa(i)
}
for i := range m1 {
fmt.Println(m1[i])
}
fmt.Println(m1)
}
直通車
一.Go開發(fā)工具及命令
二.Go編程基礎(chǔ)知識
三.Go的類型與變量
四.Go常量與運算符
五.Go控制語句
六.Go數(shù)組
七.Go切片slice
八.Go哈希字典map
九.Go函數(shù)func
十.Go結(jié)構(gòu)struct