var tsm sync.Map
tsm.Store("k1", "v1")
tsm.Store("k2", "v2")
tsm.Store("k3", "v3")
tsm.Store("k4", "v4")
tsm.Store("k5", "v5")
// 需继续迭代,Range 回调函数应返回 true
// 需终止迭代,Range 回调函数应返回 false
tsm.Range(func(key, value interface{}) bool {
k, _ := key.(string)
if k == "k2" || k == "k4" {
tsm.Delete(key)
}
return true
})
tsm.Range(func(key, value interface{}) bool {
k, _ := key.(string)
v, _ := value.(string)
println(k, v)
return true
})
【Go】sync.Map在遍历时删除元素是安全的
于 2023-03-31 14:49:04 首次发布