映射
Go语言提供的映射关系容器为map。map使用散列表(hash)实现。
创建一个map
package main
import "fmt"
func main() {
mapA := make(map[string]int)
mapA["key1"]=1
fmt.Println(mapA)
fmt.Println(mapA["key1"])
fmt.Println(mapA["key2"])
}
查询某个值是否存在
//查询某个键是否存在
v,ok := mapA["key2"]
fmt.Println(v,ok) //0 false声明时填充内容
遍历map映射
使用delete()函数从map中删除键值对
能够在并发环境中使用的map——sync.Map
Go语言中的map在并发情况下,只读是线程安全的,同时读写线程不安全。
两个并发函数不断地对map进行读和写而发生了竞态问题。map内部会对这种并发操作进行检查并提前发现。
sync.Map有以下特性:
无须初始化,直接声明即可。
sync.Map不能使用map的方式进行取值和设置等操作,而是使用sync.Map的方法进行调用。Store表示存储,Load表示获取,Delete表示删除。
使用Range配合一个回调函数进行遍历操作,通过回调函数返回内部遍历出来的值。Range参数中的回调函数的返回值功能是:需要继续迭代遍历时,返回true;终止迭代遍历时,返回false。
最后更新于