判断某个值是否在某个切片中
func inSlice(val interface{
},slice interface{
}) (int,error){
valof := reflect.ValueOf(slice)
if valof.Kind() != reflect.Slice {
return -1,errors.New("类型错误")
}
slice1 := make([]interface{
},0)
for i := 0 ; i < valof.Len() ; i++ {
slice1 = append(slice1, valof.Index(i).Interface())
}
for i,v := range slice1{
if v == val {
return i,nil
}
}
return -1,errors.New("not found")
}
结构体转Map
func StructToMap(structure interface{
},res map[string]interface{
},recur bool) error{
tp := reflect.TypeOf(structure)
v := reflect.ValueOf(structure)
switch tp.Kind() {
case reflect.Struct:
default:
return errors.New("所需参数为struct类型,却传入"+tp.Kind