33 lines
535 B
Go
33 lines
535 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 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
|
|
}
|
|
|
|
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
|
|
}
|