From db86a646f41a9db415a339c96bf69a89b9fa2cd6 Mon Sep 17 00:00:00 2001 From: kercylan98 Date: Tue, 16 May 2023 10:09:05 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=AF=E6=8C=81=E8=8E=B7=E5=8F=96=E4=B8=80?= =?UTF-8?q?=E4=B8=AA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- utils/synchronization/map.go | 12 ++++++++++++ utils/synchronization/map_readonly.go | 1 + 2 files changed, 13 insertions(+) diff --git a/utils/synchronization/map.go b/utils/synchronization/map.go index faa0486..66ed3a0 100644 --- a/utils/synchronization/map.go +++ b/utils/synchronization/map.go @@ -247,6 +247,18 @@ func (slf *Map[Key, Value]) Size() int { return len(slf.data) } +// GetOne 获取一个 +func (slf *Map[Key, Value]) GetOne() (value Value) { + if !slf.atom { + slf.lock.RLock() + defer slf.lock.RUnlock() + } + for _, v := range slf.data { + return v + } + return value +} + func (slf *Map[Key, Value]) MarshalJSON() ([]byte, error) { m := slf.Map() return json.Marshal(m) diff --git a/utils/synchronization/map_readonly.go b/utils/synchronization/map_readonly.go index e6ce868..2a9181d 100644 --- a/utils/synchronization/map_readonly.go +++ b/utils/synchronization/map_readonly.go @@ -14,4 +14,5 @@ type MapReadonly[Key comparable, Value any] interface { Slice() []Value Map() map[Key]Value Size() int + GetOne() (value Value) }