package utils type BasicType interface { int | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | string } func InArray[T BasicType](needle T, hystack []T) bool { for _, item := range hystack { if needle == item { return true } } return false } func SliceArray[T any](arr []T, offset int, limit int) []T { size := len(arr) if size <= offset { return []T{} } else if size > offset && size < offset+limit { return arr[offset:size] } else { return arr[offset : offset+limit] } } func ToMap[K comparable, T any](arr []T, getKey func(*T) K) map[K]T { r := make(map[K]T) for _, v := range arr { k := getKey(&v) r[k] = v } return r }