Map

1.1 map

map[keyType][valueType]age' := make(map[string]int)
package main

import (  
    "fmt"
)
func main() {  
    var agemap[string]int
    if age== nil {
        fmt.Println("map is nil.")
        age= make(map[string]int)
    }
}

1.2 Map的清空

age = make(map[string]int)age= nil

1.3 Map的引用属性

与切片一样,map 是引用类型。当一个 map 赋值给一个新的变量,它们都指向同一个内部数据结构。因此改变其中一个也会反映到另一个

package main

import (
    "fmt"

)

func main() {
	age := map[string]int{
        "steve": 20,
        "jamie": 80,
    }
    fmt.Println("Ori age", age)
    newage:= age
    newage["steve"] = 18
    fmt.Println("age changed", age)
}
Ori age map[steve:20 jamie:80]
age changed map[steve:18 jamie:80]

2.1 二维map

2.1.1 二维map的初始化

初始化需要两个步骤

yourMap := make(map[string]map[string]int)
for i, _ := range yourMap {
	yourMap[i] = make(map[string]int)
}

2.1.2 二维map的清空

二维以及多维map的清空同一维map的原理是相同的,不再赘述。