golang二维map的使用

时间:2025-02-26 07:06:28

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的原理是相同的,不再赘述。