2023-03-24 10:25:12 +07:00
|
|
|
package obiutils
|
2023-03-07 11:12:13 +07:00
|
|
|
|
|
|
|
func Contains[T comparable](arr []T, x T) bool {
|
|
|
|
for _, v := range arr {
|
|
|
|
if v == x {
|
|
|
|
return true
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return false
|
|
|
|
}
|
|
|
|
|
|
|
|
func LookFor[T comparable](arr []T, x T) int {
|
|
|
|
for i, v := range arr {
|
|
|
|
if v == x {
|
|
|
|
return i
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return -1
|
|
|
|
}
|
|
|
|
|
|
|
|
func RemoveIndex[T comparable](s []T, index int) []T {
|
2023-03-24 10:25:12 +07:00
|
|
|
return append(s[:index], s[index+1:]...)
|
2023-03-07 11:12:13 +07:00
|
|
|
}
|
2023-05-02 10:43:22 +02:00
|
|
|
|
|
|
|
func Reverse[S ~[]E, E any](s S, inplace bool) S {
|
|
|
|
if !inplace {
|
|
|
|
c := make([]E,len(s))
|
|
|
|
copy(c,s)
|
|
|
|
s = c
|
|
|
|
}
|
|
|
|
for i, j := 0, len(s)-1; i < j; i, j = i+1, j-1 {
|
|
|
|
s[i], s[j] = s[j], s[i]
|
|
|
|
}
|
|
|
|
|
|
|
|
return s
|
|
|
|
}
|