modash/moslice/find.go

33 lines
535 B
Go
Raw Normal View History

package moslice
func Contains[T comparable](ts []T, needle T) bool {
for _, t := range ts {
if t == needle {
return true
}
}
return false
}
func FindWhere[T comparable](ts []T, predicate func(t T) bool) (T, bool) {
var zeroT T
for _, t := range ts {
if predicate(t) {
return t, true
}
}
return zeroT, false
}
2025-06-19 11:23:00 +00:00
func FindWithIndexWhere[T comparable](ts []T, predicate func(t T) bool) (T, int, bool) {
var zeroT T
for i, t := range ts {
if predicate(t) {
return t, i, true
}
}
return zeroT, 0, false
}