]> 127.0.0.1 Git - part/.git/commitdiff
1 v0.28.20240128084401
authorqydysky <qydysky@foxmail.com>
Sun, 28 Jan 2024 08:39:52 +0000 (16:39 +0800)
committerqydysky <qydysky@foxmail.com>
Sun, 28 Jan 2024 08:39:52 +0000 (16:39 +0800)
slice/Slice.go
slice/Slice_test.go

index 88ccbcc1204cae0939c02e0550939b11b425d146..616d271c3fdcad001cc400103da4a837f24f5458 100644 (file)
@@ -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)
 }
index e33d55c5213223716b970a22a9aa6f0acbd9ebc1..f7622539a4fc530b073b71a671a9992167fa56b1 100644 (file)
@@ -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()
        }