Map
- map以key-value的形式存储
- key必须是支持==或者!=比较运算的类型,不能是函数、map或slice
- map查找比线性搜索快很多,但比使用索引访问数据的类型慢
- map使用make()创建,支持:=这种方式
- make(map[key类型]value类型)
- 超出容量时会自动扩容,使用len()获取元素个数
- 简直对不存在时,自动添加,使用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开发工具及命令
二.Go编程基础知识
三.Go的类型与变量
四.Go常量与运算符
五.Go控制语句
六.Go数组
七.Go切片slice
八.Go哈希字典map
九.Go函数func
十.Go结构struct