12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- 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
- }
- // func InArray(needle interface{}, hystack interface{}) bool {
- // switch key := needle.(type) {
- // case string:
- // for _, item := range hystack.([]string) {
- // if key == item {
- // return true
- // }
- // }
- // case int:
- // for _, item := range hystack.([]int) {
- // if key == item {
- // return true
- // }
- // }
- // case int64:
- // for _, item := range hystack.([]int64) {
- // if key == item {
- // return true
- // }
- // }
- // default:
- // return false
- // }
- // return false
- // }
|