go.charczuk.com@v0.0.0-20240327042549-bc490516bd1a/sdk/iter/filter.go (about)

     1  /*
     2  
     3  Copyright (c) 2023 - Present. Will Charczuk. All rights reserved.
     4  Use of this source code is governed by a MIT license that can be found in the LICENSE file at the root of the repository.
     5  
     6  */
     7  
     8  package iter
     9  
    10  // Filter returns a filtered version of the list.
    11  func Filter[T any](l []T, predicate func(T) bool) (output []T) {
    12  	output = make([]T, 0, len(l))
    13  	for _, i := range l {
    14  		if predicate(i) {
    15  			output = append(output, i)
    16  		}
    17  	}
    18  	return
    19  }