Map
- map以key-value的形式存儲(chǔ)
- key必須是支持==或者!=比較運(yùn)算的類型,不能是函數(shù)、map或slice
- map查找比線性搜索快很多,但比使用索引訪問數(shù)據(jù)的類型慢
- map使用make()創(chuàng)建,支持:=這種方式
- make(map[key類型]value類型)
- 超出容量時(shí)會(huì)自動(dòng)擴(kuò)容,使用len()獲取元素個(gè)數(shù)
- 簡(jiǎn)直對(duì)不存在時(shí),自動(dòng)添加,使用delete()刪除某鍵值對(duì)
func main() {
m1 := make(map[int]string)
m1[0] = "OK"
fmt.Println(m1)
delete(m1, 0)
fmt.Println(m1)
}
- map嵌套map時(shí),make只會(huì)初始化第一層map,第二層map也需要單獨(dú)初始化
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 對(duì)map和slice進(jìn)行迭代操作
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ǔ)知識(shí)
三.Go的類型與變量
四.Go常量與運(yùn)算符
五.Go控制語句
六.Go數(shù)組
七.Go切片slice
八.Go哈希字典map
九.Go函數(shù)func
十.Go結(jié)構(gòu)struct