### 映射
>**一種無序的鍵值對集合,鍵類似于索引**
### 聲明映射
> **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
- 多線程:通道思路
- 多線程爬蟲:快代理