### 映射
>**一种无序的键值对集合,键类似于索引**
### 声明映射
> **var map [键类型]值类型**
```
package main
import "fmt"
func main() {
var maps map[string]int
fmt.Println(maps)
// map[]
}
```
### 初始化映射
>**make(map[键类型]值类型, map容量),len()函数可以获取映射长度,cap()函数不能获取映射容量**
```
package main
import "fmt"
func main() {
var maps map[string]int
maps = make(map[string]int)
maps["Tom"] = 18
maps["Ben"] = 15
maps["Peter"] = 17
fmt.Println("map映射,长度,容量", maps, len(maps))
// map映射,长度,容量 map[Ben:15 Peter:17 Tom:18] 3
}
```
```
package main
import "fmt"
func main() {
var maps = map[string]int{
"Tom": 18,
"Ben": 16,
"Peter": 17,
}
fmt.Println("map映射,长度,容量", maps, len(maps))
// map映射,长度,容量 map[Ben:16 Peter:17 Tom:18] 3
}
```
### 从映射中删除键值对
> **delete(map,键),方法删除**
```
package main
import "fmt"
func main() {
var maps = make(map[string]int)
maps["Tom"] = 18
maps["Ben"] = 20
maps["Peter"] = 15
fmt.Println("映射删除Ben前", maps)
delete(maps, "Ben")
fmt.Println("映射删除Ben后", maps)
}
结果:
映射删除Ben前 map[Ben:20 Peter:15 Tom:18]
映射删除Ben后 map[Peter:15 Tom:18]
```
### 遍历映射
> **类似于数组 切片**
```
package main
import "fmt"
func main() {
maps := map[string]int{
"Tom": 12,
"Ben": 13,
"Peter": 14,
"Pony": 15,
}
fmt.Println("遍历前", maps)
for k, v := range maps {
fmt.Println(k, v)
}
}
结果:
遍历前 map[Ben:13 Peter:14 Pony:15 Tom:12]
Pony 15
Tom 12
Ben 13
Peter 14
```
- 安装开发环境
- 安装开发环境
- 安装详细教程
- 引入包
- Go语言基础
- 基本变量与数据类型
- 变量
- 数据类型
- 指针
- 字符串
- 代码总结
- 常量与运算符
- 常量
- 运算符
- 流程控制
- if判断
- for循环
- switch分支
- goto跳转
- 斐波那契数列
- Go语言内置容器
- 数组
- 切片
- 映射
- 函数
- 函数(上)
- 函数(中)
- 函数(下)
- 小节
- 包管理
- 结构体
- 结构体(上)
- 结构体(中)
- 结构体(下)
- 小节
- 错误处理
- 错误处理
- 宕机
- 错误应用
- 小节
- 文件操作
- 获取目录
- 创建和删除目录
- 文件基本操作(上)
- 文件基本操作(中)
- 文件基本操作(下)
- 处理JSON文件
- 接口与类型
- 接口的创建与实现
- 接口赋值
- 接口嵌入
- 空接口
- 类型断言(1)
- 类型断言(2)
- 小节
- 并发与通道
- goroutine协程
- runtime包
- 通道channel
- 单向通道channel
- select
- 线程同步
- 多线程的深入学习
- http编程
- http简介
- Client和Request
- get请求
- post请求
- 模块函数方法
- 模块
- fmt库,模块
- 项目练习
- 爬虫:高三网
- 爬虫:快代理
- 爬虫:快代理2
- 多线程:通道思路
- 多线程爬虫:快代理