|
|
|
@@ -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 |
|
|
|
} |