/
dimamir
/
rill
Обзор
Документация
Войти
/
dimamir
/
rill
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
runtime/pkg/arrayutil/arrayutil.go
59 строк
1 KB
Anshul Khandelwal
Source extract policies for glob connectors (#1647)
11 фев 2023, 03:07
Не верифицирован
11 фев 2023, 03:07
685888f
Код
Авторство
О чём код?
package arrayutil func Dedupe[E comparable](array []E) []E { var deduped []E dedupeMap := make(map[E]bool) for _, e := range array { if _, ok := dedupeMap[e]; ok { continue } dedupeMap[e] = true deduped = append(deduped, e) } return deduped } func Contains[E comparable](array []E, c E) bool { for _, e := range array { if e == c { return true } } return false } func Delete[E comparable](array []E, c E) []E { for i, e := range array { if e == c { return append(array[0:i], array[i+1:]...) } } return array } // Reverse reverses a slice in-place func Reverse[T any](s []T) { for i, j := 0, len(s)-1; i < j; i, j = i+1, j-1 { s[i], s[j] = s[j], s[i] } } // RangeInt returns creates a slice with integers from start to end(excluding) // the range can also be reversed using rev flag func RangeInt(start, end int, rev bool) []int { if end <= start { return make([]int, 0) } result := make([]int, end-start) for i := start; i < end; i++ { result[i-start] = i } if rev { Reverse(result) } return result }