修复相关BUG + 增加单元测试, 覆盖率100%
This commit is contained in:
50
data_type.go
50
data_type.go
@ -14,12 +14,12 @@ package consts
|
||||
// Date : 14:10 2024/11/25
|
||||
type DataType string
|
||||
|
||||
func (df *DataType) String() string {
|
||||
return string(*df)
|
||||
func (df DataType) String() string {
|
||||
return string(df)
|
||||
}
|
||||
|
||||
func (df *DataType) MarshalJSON() ([]byte, error) {
|
||||
return []byte(df.String()), nil
|
||||
func (df DataType) MarshalJSON() ([]byte, error) {
|
||||
return []byte(`"` + df.String() + `"`), nil
|
||||
}
|
||||
|
||||
// IsValid 判断枚举值是否有效
|
||||
@ -27,9 +27,9 @@ func (df *DataType) MarshalJSON() ([]byte, error) {
|
||||
// Author : go_developer@163.com<白茶清欢>
|
||||
//
|
||||
// Date : 14:45 2024/11/25
|
||||
func (df *DataType) IsValid() bool {
|
||||
func (df DataType) IsValid() bool {
|
||||
for _, item := range DataTypeList {
|
||||
if item.Value == *df {
|
||||
if item.Value == df || item.Value.String() == df.String() {
|
||||
return true
|
||||
}
|
||||
}
|
||||
@ -369,49 +369,49 @@ func GetDataTypeDefaultValue(dataType DataType) any {
|
||||
case DataTypeBoolPtr:
|
||||
return new(bool)
|
||||
case DataTypeMapStrAny:
|
||||
return new(map[string]any)
|
||||
return map[string]any{}
|
||||
case DataTypeMapAnyAny:
|
||||
return new(map[any]any)
|
||||
return map[any]any{}
|
||||
case DataTypeMapStrBool:
|
||||
return new(map[string]bool)
|
||||
return map[string]bool{}
|
||||
case DataTypeMapStrInt:
|
||||
return new(map[string]int)
|
||||
return map[string]int{}
|
||||
case DataTypeMapStrFloat:
|
||||
return new(map[string]float64)
|
||||
return map[string]float64{}
|
||||
case DataTypeMapStrUint:
|
||||
return new(map[string]uint)
|
||||
return map[string]uint{}
|
||||
case DataTypeMapStrSlice:
|
||||
return new(map[string][]any)
|
||||
return map[string][]any{}
|
||||
case DataTypeMapStrStr:
|
||||
return new(map[string]string)
|
||||
return map[string]string{}
|
||||
case DataTypeSliceAny:
|
||||
return new([]any)
|
||||
return []any{}
|
||||
case DataTypeSliceString:
|
||||
return new([]string)
|
||||
return []string{}
|
||||
case DataTypeSliceBool:
|
||||
return new([]bool)
|
||||
return []bool{}
|
||||
case DataTypeSliceInt:
|
||||
return new([]int)
|
||||
return []int{}
|
||||
case DataTypeSliceUint:
|
||||
return new([]uint)
|
||||
return []uint{}
|
||||
case DataTypeSliceFloat:
|
||||
return new([]float64)
|
||||
return []float64{}
|
||||
case DataTypeSliceMapAnyAny:
|
||||
// map[any]any 序列化会有问题,当做 map[string]any 处理
|
||||
return new([]map[string]any)
|
||||
return []map[string]any{}
|
||||
case DataTypeSliceMapStringAny:
|
||||
return new([]map[string]any)
|
||||
return []map[string]any{}
|
||||
default:
|
||||
// 序列化之后的map
|
||||
for _, dataTypeItem := range DataTypeMapMarshal {
|
||||
if dataTypeItem == dataType {
|
||||
return ""
|
||||
return "{}"
|
||||
}
|
||||
}
|
||||
// 序列化之后的slice
|
||||
for _, dataTypeItem := range DataTypeSliceMarshal {
|
||||
if dataTypeItem == dataType {
|
||||
return ""
|
||||
return "[]"
|
||||
}
|
||||
}
|
||||
// 指定分隔符分割的slice
|
||||
@ -423,7 +423,7 @@ func GetDataTypeDefaultValue(dataType DataType) any {
|
||||
// 未枚举的slice类型用any接收
|
||||
for _, dataTypeItem := range DataTypeSlice {
|
||||
if dataTypeItem == dataType {
|
||||
return new([]any)
|
||||
return []any{}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user