Filters elements from a source based on a predicate function.
func Filter[T any](predicate Predicate[T], source any, dest any) *Builder[T]
Description: Filters elements from source based on the predicate function and stores them in dest.
Parameters:
predicate: Function that evaluates whether an element should be included in the result. It takes an element of type T and returns a bool.
source: Source data to filter (expects pointers to slices or maps).
dest: Destination where filtered elements will be stored (expects pointers to lists or maps).
1package main
2
3import (
4 "fmt"
5 collection "github.com/jose78/go-collection/v2"
6)
7
8// Filter only even numbers
9func filterModule(elem int) bool {
10 return elem%2 == 0
11}
12
13func main() {
14 slice := []int{1, 2, 3, 4, 5}
15 filteredSlice := []int{}
16 builder := collection.Filter(filterModule, slice, &filteredSlice)
17 if builder != nil {
18 if err := builder.Error(); err != nil {
19 fmt.Printf("Error during filtering: %v\n", err)
20 }
21 } else {
22 fmt.Println("Filtered slice:", filteredSlice)
23 }
24}