From 32f28fb457f723d4efa33ca413e441bbf98bc563 Mon Sep 17 00:00:00 2001 From: kercylan98 Date: Fri, 5 May 2023 17:01:20 +0800 Subject: [PATCH] =?UTF-8?q?=E5=90=8C=E6=AD=A5map=E5=8F=AA=E8=AF=BB?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- utils/synchronization/map_readonly.go | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 utils/synchronization/map_readonly.go diff --git a/utils/synchronization/map_readonly.go b/utils/synchronization/map_readonly.go new file mode 100644 index 0000000..e6ce868 --- /dev/null +++ b/utils/synchronization/map_readonly.go @@ -0,0 +1,17 @@ +package synchronization + +// MapReadonly 并发安全的只读字典接口 +type MapReadonly[Key comparable, Value any] interface { + Get(key Key) Value + Exist(key Key) bool + GetExist(key Key) (Value, bool) + Length() int + Range(handle func(key Key, value Value)) + RangeSkip(handle func(key Key, value Value) bool) + RangeBreakout(handle func(key Key, value Value) bool) + RangeFree(handle func(key Key, value Value, skip func(), breakout func())) + Keys() []Key + Slice() []Value + Map() map[Key]Value + Size() int +}