package collect import "sync" // SyncMap sync.Map 泛型包装 type SyncMap[K comparable, V any] struct { m *sync.Map } func NewSyncMap[K comparable, V any]() *SyncMap[K, V] { return &SyncMap[K, V]{ m: new(sync.Map), } } // Store 放置新值 func (m *SyncMap[K, V]) Store(k K, v V) { m.m.Store(k, v) } func (m *SyncMap[K, V]) Load(k K) (v V, ok bool) { value, ok := m.m.Load(k) if !ok { return } v = value.(V) return } func (m *SyncMap[K, V]) Range(f func(k K, v V) bool) { m.m.Range(func(key, value any) bool { return f(key.(K), value.(V)) }) }