// Package util ... // // Description : util ... // // Author : go_developer@163.com<白茶清欢> // // Date : 2023-03-30 14:35 package util import ( "fmt" "reflect" ) type array struct { } // In 判断指定数据是否在目标数据集中, 不存在返回 -1 , 存在时返回数据对应的索引 // // Author : go_developer@163.com<白茶清欢> // // Date : 14:38 2023/3/30 func (a *array) In(search interface{}, source interface{}) int { if nil == source { return -1 } list, ok := source.([]interface{}) if !ok { return -1 } if nil == search { for idx, item := range list { if item == nil { return idx } } return -1 } searchType := reflect.TypeOf(search).Kind() for idx, item := range list { if searchType != reflect.TypeOf(item).Kind() { // 类型不同 continue } if fmt.Sprintf("%v", search) == fmt.Sprintf("%v", item) { return idx } } return -1 }