From 83e980976bf7bccf0f9b3a3f61530534c82edf74 Mon Sep 17 00:00:00 2001 From: qydysky Date: Sun, 28 Jan 2024 16:39:52 +0800 Subject: [PATCH] 1 --- slice/Slice.go | 21 ++++++++++----------- slice/Slice_test.go | 8 ++++---- 2 files changed, 14 insertions(+), 15 deletions(-) diff --git a/slice/Slice.go b/slice/Slice.go index 88ccbcc..616d271 100644 --- a/slice/Slice.go +++ b/slice/Slice.go @@ -160,21 +160,20 @@ func (t *Buf[T]) GetCopyBuf() (buf []T) { return } -func DelFront[S ~[]*T, T any](s S, beforeIndex int) S { - return s[:copy(s, s[beforeIndex+1:])] +func DelFront[S ~[]*T, T any](s *S, beforeIndex int) { + *s = (*s)[:copy(*s, (*s)[beforeIndex+1:])] } -func AddFront[S ~[]*T, T any](s S, t *T) S { - s = append(s, nil) - s = s[:1+copy(s[1:], s)] - s[0] = t - return s +func AddFront[S ~[]*T, T any](s *S, t *T) { + *s = append(*s, nil) + *s = (*s)[:1+copy((*s)[1:], *s)] + (*s)[0] = t } -func DelBack[S ~[]*T, T any](s S, fromIndex int) S { - return s[:fromIndex] +func DelBack[S ~[]*T, T any](s *S, fromIndex int) { + *s = (*s)[:fromIndex] } -func AddBack[S ~[]*T, T any](s S, t *T) S { - return append(s, t) +func AddBack[S ~[]*T, T any](s *S, t *T) { + *s = append(*s, t) } diff --git a/slice/Slice_test.go b/slice/Slice_test.go index e33d55c..f762253 100644 --- a/slice/Slice_test.go +++ b/slice/Slice_test.go @@ -89,19 +89,19 @@ func Test3(t *testing.T) { if unsafe.Pointer(&s) != p || cap(s) != 3 || len(s) != 3 { t.Fatal() } - s = DelFront(s, 2) + DelFront(&s, 2) if unsafe.Pointer(&s) != p || cap(s) != 3 || len(s) != 0 { t.Fatal() } - s = AddFront(s, &i) + AddFront(&s, &i) if unsafe.Pointer(&s) != p || cap(s) != 3 || len(s) != 1 { t.Fatal() } - s = AddBack(s, &i) + AddBack(&s, &i) if unsafe.Pointer(&s) != p || cap(s) != 3 || len(s) != 2 { t.Fatal() } - s = DelBack(s, 1) + DelBack(&s, 1) if unsafe.Pointer(&s) != p || cap(s) != 3 || len(s) != 1 { t.Fatal() } -- 2.39.2