21 lines
345 B
Go
21 lines
345 B
Go
package array
|
|
|
|
func Find[TIn any](arr []TIn, predicate func(val TIn) bool) *TIn {
|
|
for i := range arr {
|
|
if predicate(arr[i]) {
|
|
return &arr[i]
|
|
}
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func Filter[TIn any](arr []TIn, predicate func(val *TIn) bool) []TIn {
|
|
var r []TIn
|
|
for i := range arr {
|
|
if predicate(&arr[i]) {
|
|
r = append(r, arr[i])
|
|
}
|
|
}
|
|
return r
|
|
}
|