// Package wrapper ... // // Description : wrapper ... // // Author : go_developer@163.com<白茶清欢> // // Date : 2023-06-01 18:18 package wrapper import "reflect" // AnyDataType ... // // Author : go_developer@163.com<白茶清欢> // // Date : 18:19 2023/6/1 func AnyDataType(data interface{}) *AnyType { at := &AnyType{ data: data, } at.Type() return at } // AnyType ... // // Author : go_developer@163.com<白茶清欢> // // Date : 18:19 2023/6/1 type AnyType struct { data interface{} dataType string } // IsNil 是否为 nil // // Author : go_developer@163.com<白茶清欢> // // Date : 18:21 2023/6/1 func (at *AnyType) IsNil() bool { return at.data == nil } // Type 获取类型 // // Author : go_developer@163.com<白茶清欢> // // Date : 18:22 2023/6/1 func (at *AnyType) Type() string { if len(at.dataType) > 0 { // 已经处理过的,无需在处理 return at.dataType } if at.IsNil() { return DataTypeNil } reflectType := reflect.TypeOf(at.data) switch reflectType.Kind() { case reflect.Slice: return DataTypeAnySlice case reflect.Array: return DataTypeAnySlice case reflect.Map: return DataTypeAnyObject case reflect.Struct: return DataTypeAnyObject case reflect.Pointer: return DataTypePtr default: return reflectType.Kind().String() } } // ToString 转为字符串 // // Author : go_developer@163.com<白茶清欢> // // Date : 18:32 2023/6/1 func (at *AnyType) ToString() string { return "" }