快速掌握 Go 语言中的集合(map)

bug
Gomap

映射关系容器 map

Gomapmaphash
Gomap
map[keyType] valueType
nilmake
panic: assignment to entry in nil map

必须要申请空间,所有的引用类型都要这么做

var m map[string]string
m = make(map[string]string) 

当然,也可以这么写

m := make(map[string]string) 

使用

赋值

	m["name"] = "coding3min"
	m["sex"] = "man"

循环遍历

for key := range m {
    // 原来不用Printf也可以完成拼接输出啊!
		fmt.Println("key:", key, ",value:", m[key]) 
}

删除集合元素

	delete(m, "name")
m[key]keyvalueint0

当然了,如果你想明确的知道元素是否存在,如下:

	if value, ok := m[key]; ok {
		fmt.Println(key, "存在,值为:", value)
	} else {
		fmt.Println(key, " 不存在")
	}

map容器就到这里了。

map
Gomap
sync.Map
	var scene sync.Map
	scene.Store("name", "coding3min")
	scene.Store("age", 11)

取值

v, ok := scene.Load("name")
	if ok {
		fmt.Println(v)
	}
	v, ok = scene.Load("age")
	if ok {
		fmt.Println(v)
	}

输出

coding3min
11

删除和遍历,这里遍历就用到了函数当作参数传递和匿名函数的知识。

	scene.Delete("age")

	scene.Range(func(key, value interface{}) bool {
		fmt.Println("key:",key,",value:",value)
		return true
	})

the end,今天的更新还没完,次条还有切片知识补充哦