代码拉取完成,页面将自动刷新
package tools
import "sync"
type GenericsSyncMap[K any, V interface{}] struct {
sync.Map
}
func NewGenericsSyncMap[K comparable, V interface{}]() *GenericsSyncMap[K, V] {
return &GenericsSyncMap[K, V]{
Map: sync.Map{},
}
}
func (g *GenericsSyncMap[K, V]) Get(key K) (V, bool) {
value, ok := g.Map.Load(key)
if ok {
return value.(V), true
}
var defaultValue V
return defaultValue, false
}
func (g *GenericsSyncMap[K, V]) Put(key K, value V) {
g.Map.Store(key, value)
}
func (g *GenericsSyncMap[K, V]) Delete(key K) {
g.Map.Delete(key)
}
func (g *GenericsSyncMap[K, V]) Range(f func(key K, value V)) {
g.Map.Range(func(key, val interface{}) bool {
f(key.(K), val.(V))
return true
})
}
func (g *GenericsSyncMap[K, V]) Len() (len int) {
g.Map.Range(func(key, val interface{}) bool {
len++
return true
})
return
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。