Files
go-utils/utils/in.go
兔子 1f83977e03 v1.1.2
v1.1.2
2023-05-13 18:35:49 +08:00

29 lines
447 B
Go

package utils
import (
"reflect"
"sync"
)
// InArray - 判断某个值是否在数组中
func InArray[T any](value T, array []T) (ok bool) {
var wg sync.WaitGroup
var mutex sync.Mutex
found := false
for _, val := range array {
if found {
break
}
wg.Add(1)
go func(item T) {
defer wg.Done()
if reflect.DeepEqual(value, item) {
mutex.Lock()
found = true
mutex.Unlock()
}
}(val)
}
wg.Wait()
return found
}