From 170160d35da59450ecdffd64e1d5e4f09e96f293 Mon Sep 17 00:00:00 2001 From: Sydonian <794346190@qq.com> Date: Thu, 25 Jul 2024 10:08:53 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=AE=9E=E7=94=A8=E5=87=BD?= =?UTF-8?q?=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- utils/lo2/lo.go | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/utils/lo2/lo.go b/utils/lo2/lo.go index 9011fe8..69e6150 100644 --- a/utils/lo2/lo.go +++ b/utils/lo2/lo.go @@ -19,6 +19,22 @@ func RemoveAt[T any](arr []T, index int) []T { return append(arr[:index], arr[index+1:]...) } +func RemoveAllDefault[T comparable](arr []T) []T { + var def T + return lo.Filter(arr, func(i T, idx int) bool { + return i != def + }) +} + +func Clear[T comparable](arr []T, item T) { + var def T + for i := 0; i < len(arr); i++ { + if arr[i] == item { + arr[i] = def + } + } +} + func ArrayClone[T any](arr []T) []T { return append([]T{}, arr...) } @@ -29,3 +45,12 @@ func Insert[T any](arr []T, index int, item T) []T { arr[index] = item return arr } + +func Deref[T any](arr []*T) []T { + result := make([]T, len(arr)) + for i := 0; i < len(arr); i++ { + result[i] = *arr[i] + } + + return result +}