We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent cb5c157 commit 7e70cd8Copy full SHA for 7e70cd8
mkdocs.yml
@@ -1,4 +1,5 @@
1
site_name: Go Utils
2
+site_url: https://goldziher.github.io/go-utils/
3
repo_url: https://github.com/Goldziher/go-utils
4
repo_name: Goldziher/go-utils
5
nav:
sliceutils/sliceutils.go
@@ -194,13 +194,14 @@ func Remove[T any](slice []T, i int) []T {
194
if len(slice) == 0 || i > len(slice)-1 {
195
return slice
196
}
197
+ copied := Copy(slice)
198
if i == 0 {
- return slice[1:]
199
+ return copied[1:]
200
- if i != len(slice)-1 {
201
- return append(slice[:i], slice[i+1:]...)
+ if i != len(copied)-1 {
202
+ return append(copied[:i], copied[i+1:]...)
203
- return slice[:i]
204
+ return copied[:i]
205
206
207
// Insert - receives a slice of type T, an index and a value.
sliceutils/sliceutils_test.go
@@ -150,13 +150,13 @@ func TestSum(t *testing.T) {
150
151
func TestRemove(t *testing.T) {
152
testSlice := []int{1, 2, 3}
153
- result := sliceutils.Remove(testSlice, 0)
154
- assert.Equal(t, []int{2, 3}, result)
+ result := sliceutils.Remove(testSlice, 1)
+ assert.Equal(t, []int{1, 3}, result)
155
assert.Equal(t, []int{1, 2, 3}, testSlice)
156
result = sliceutils.Remove(result, 1)
157
- assert.Equal(t, []int{2}, result)
+ assert.Equal(t, []int{1}, result)
158
result = sliceutils.Remove(result, 3)
159
160
result = sliceutils.Remove(result, 0)
161
assert.Equal(t, []int{}, result)
162
0 commit comments