38 lines
635 B
Go
38 lines
635 B
Go
|
package utils
|
||
|
|
||
|
import "sort"
|
||
|
|
||
|
// Автоинкрементер ID
|
||
|
func GetIDGenerator() func() int {
|
||
|
id := 0
|
||
|
return func() int {
|
||
|
id++
|
||
|
return id
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// Helper function сортирует срез массивов
|
||
|
func Sorted(values []int) []int {
|
||
|
sort.Ints(values)
|
||
|
return values
|
||
|
}
|
||
|
|
||
|
// Helper function ищет индекс по значению в слайсе
|
||
|
func IndexOf(values []int, target int) int {
|
||
|
for i, v := range values {
|
||
|
if v == target {
|
||
|
return i
|
||
|
}
|
||
|
}
|
||
|
return -1
|
||
|
}
|
||
|
|
||
|
func FindIndex(slice []int, predicate func(int) bool) int {
|
||
|
for i, v := range slice {
|
||
|
if predicate(v) {
|
||
|
return i
|
||
|
}
|
||
|
}
|
||
|
return -1
|
||
|
}
|