Map
1.1 map
Map是golang中的一种数据类型,将键与值绑定到一起。可以通过键获取对应的值,map使用hash实现,可以快速的通过键找到对应的值。类型表示:map[keyType][valueType]
例如:age' := make(map[string]int)
使用内置make函数来初始化map,而且只能使用make来初始化map,因为为一个为nil的map,添加元素,无任何意义,会导致运行时错误。
package main
import (
"fmt"
)
func main() {
var agemap[string]int
if age== nil {
("map is nil.")
age= make(map[string]int)
}
}
1.2 Map的清空
golang 的map并没有提供明确清空map的内置函数,清空map,直接初始化就可以了:
对于一个有一定数据的集合 age,清空办法就是再次初始化: age = make(map[string]int)
,如果后期不再使用该map,则可以直接:age= nil
即可,达到清空数据的目的,但是如果还需要重复使用,则必须进行make初始化,否则无法为nil的map添加任何内容。
1.3 Map的引用属性
与切片一样,map 是引用类型。当一个 map 赋值给一个新的变量,它们都指向同一个内部数据结构。因此改变其中一个也会反映到另一个
package main
import (
"fmt"
)
func main() {
age := map[string]int{
"steve": 20,
"jamie": 80,
}
("Ori age", age)
newage:= age
newage["steve"] = 18
("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的原理是相同的,不再赘述。