From 5024022366aaa52cfdd36afc5440266baa633021 Mon Sep 17 00:00:00 2001 From: kercylan98 Date: Fri, 8 Sep 2023 14:44:48 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20stream.Slice=20=E6=96=B0=E5=A2=9E=20Ind?= =?UTF-8?q?exes=20=E5=92=8C=20Map=20=E5=87=BD=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- utils/stream/slice.go | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/utils/stream/slice.go b/utils/stream/slice.go index 460e9ea..66e0827 100644 --- a/utils/stream/slice.go +++ b/utils/stream/slice.go @@ -19,6 +19,24 @@ func (slf Slice[V]) Zoom(newSize int) Slice[V] { return slice.Zoom(newSize, slf) } +// Indexes 将切片转换为索引切片 +func (slf Slice[V]) Indexes() Slice[int] { + var s = make([]int, len(slf)) + for i := 0; i < len(s); i++ { + s[i] = i + } + return s +} + +// Map 将切片转为 map +func (slf Slice[V]) Map() Map[int, V] { + var m = make(map[int]V, len(slf)) + for k, v := range slf { + m[k] = v + } + return m +} + // Chunk 是 slice.Chunk 的快捷方式 func (slf Slice[V]) Chunk(size int) Slices[V] { chunks := slice.Chunk(slf, size)