modash/moslice/find.go
Leon Mika f7abe7c01f
All checks were successful
ci / deploy (push) Successful in 47s
Added moslice.FirstWhere
2026-05-13 22:16:38 +10:00

44 lines
676 B
Go

package moslice
func Contains[T comparable](ts []T, needle T) bool {
for _, t := range ts {
if t == needle {
return true
}
}
return false
}
func FirstWhere[T any](ts []T, predicate func(t T) bool) T {
var zeroT T
for _, t := range ts {
if predicate(t) {
return t
}
}
return zeroT
}
func FindWhere[T any](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
}
func FindWithIndexWhere[T any](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
}