diff --git a/SliceTricks.md b/SliceTricks.md index 29c4e7a0..2a7214be 100644 --- a/SliceTricks.md +++ b/SliceTricks.md @@ -69,6 +69,19 @@ a = append(a[:i], append(make([]T, j), a[i:]...)...) a = append(a, make([]T, j)...) ``` +#### Filter (in place) + +```go +n := 0 +for _, x := range a { + if keep(x) { + a[n] = x + n++ + } +} +a = a[:n] +``` + #### Insert ```go a = append(a[:i], append([]T{x}, a[i:]...)...)