package xarray import ( "reflect" "strings" ) func ToSlice(slice interface{}) []interface{} { s := reflect.ValueOf(slice) if s.Kind() != reflect.Slice { panic("InterfaceSlice() given a non-slice type") } ret := make([]interface{}, s.Len()) for i := 0; i < s.Len(); i++ { ret[i] = s.Index(i).Interface() } return ret } func ToCountMap(strArr []string) map[string]int64 { mps := make(map[string]int64) for _, v := range strArr { mps[strings.ToLower(v)]++ } return mps } func InArray(need interface{}, list []interface{}) bool { for _, v := range list { if need == v { return true } } return false } func UniqArray(list []int64) []int64 { result := make([]int64, 0) if len(list) == 0 { return result } mp := make(map[int64]bool) for _, v := range list { if mp[v] { continue } result = append(result, v) mp[v] = true } return result }