1 Star 0 Fork 0

天雨流芳 / go-micro-framework

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
generics_sync_map.go 844 Bytes
一键复制 编辑 原始数据 按行查看 历史
天雨流芳 提交于 2024-05-07 17:11 . 泛型map改为继承的方式
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
}
1
https://gitee.com/tylf2018/go-micro-framework.git
git@gitee.com:tylf2018/go-micro-framework.git
tylf2018
go-micro-framework
go-micro-framework
e87e0c3d7074

搜索帮助