增加获取各种数据类型的默认值方法

This commit is contained in:
白茶清欢 2025-03-21 18:22:41 +08:00
parent 734d9a9f77
commit d6e86b64f7

@ -312,117 +312,117 @@ func getMergeDataTypeList(dataTypeList ...[]DataType) []DataType {
} }
// GetDataTypeDefaultValue 获取不同类型的默认值 // GetDataTypeDefaultValue 获取不同类型的默认值
func GetDataTypeDefaultValue(dataType string) any { func GetDataTypeDefaultValue(dataType DataType) any {
switch dataType { switch dataType {
case DataTypeInt.String(): case DataTypeInt:
return int(0) return int(0)
case DataTypeInt8.String(): case DataTypeInt8:
return int8(0) return int8(0)
case DataTypeInt16.String(): case DataTypeInt16:
return int16(0) return int16(0)
case DataTypeInt32.String(): case DataTypeInt32:
return int32(0) return int32(0)
case DataTypeInt64.String(): case DataTypeInt64:
return int64(0) return int64(0)
case DataTypeUint.String(): case DataTypeUint:
return uint(0) return uint(0)
case DataTypeUint8.String(): case DataTypeUint8:
return uint8(0) return uint8(0)
case DataTypeUint16.String(): case DataTypeUint16:
return uint16(0) return uint16(0)
case DataTypeUint32.String(): case DataTypeUint32:
return uint32(0) return uint32(0)
case DataTypeUint64.String(): case DataTypeUint64:
return uint64(0) return uint64(0)
case DataTypeFloat32.String(): case DataTypeFloat32:
return float32(0) return float32(0)
case DataTypeFloat64.String(): case DataTypeFloat64:
return float64(0) return float64(0)
case DataTypeBool.String(): case DataTypeBool:
return false return false
case DataTypeString.String(): case DataTypeString:
return "" return ""
case DataTypeIntPtr.String(): case DataTypeIntPtr:
return new(int) return new(int)
case DataTypeInt8Ptr.String(): case DataTypeInt8Ptr:
return new(int8) return new(int8)
case DataTypeInt16Ptr.String(): case DataTypeInt16Ptr:
return new(int16) return new(int16)
case DataTypeInt32Ptr.String(): case DataTypeInt32Ptr:
return new(int32) return new(int32)
case DataTypeInt64Ptr.String(): case DataTypeInt64Ptr:
return new(int64) return new(int64)
case DataTypeUintPtr.String(): case DataTypeUintPtr:
return new(uint) return new(uint)
case DataTypeUint8Ptr.String(): case DataTypeUint8Ptr:
return new(uint8) return new(uint8)
case DataTypeUint16Ptr.String(): case DataTypeUint16Ptr:
return new(uint16) return new(uint16)
case DataTypeUint32Ptr.String(): case DataTypeUint32Ptr:
return new(uint32) return new(uint32)
case DataTypeUint64Ptr.String(): case DataTypeUint64Ptr:
return new(uint64) return new(uint64)
case DataTypeFloat32Ptr.String(): case DataTypeFloat32Ptr:
return new(float32) return new(float32)
case DataTypeFloat64Ptr.String(): case DataTypeFloat64Ptr:
return new(float64) return new(float64)
case DataTypeBoolPtr.String(): case DataTypeBoolPtr:
return new(bool) return new(bool)
case DataTypeMapStrAny.String(): case DataTypeMapStrAny:
return new(map[string]any) return new(map[string]any)
case DataTypeMapAnyAny.String(): case DataTypeMapAnyAny:
return new(map[any]any) return new(map[any]any)
case DataTypeMapStrBool.String(): case DataTypeMapStrBool:
return new(map[string]bool) return new(map[string]bool)
case DataTypeMapStrInt.String(): case DataTypeMapStrInt:
return new(map[string]int) return new(map[string]int)
case DataTypeMapStrFloat.String(): case DataTypeMapStrFloat:
return new(map[string]float64) return new(map[string]float64)
case DataTypeMapStrUint.String(): case DataTypeMapStrUint:
return new(map[string]uint) return new(map[string]uint)
case DataTypeMapStrSlice.String(): case DataTypeMapStrSlice:
return new(map[string][]any) return new(map[string][]any)
case DataTypeMapStrStr.String(): case DataTypeMapStrStr:
return new(map[string]string) return new(map[string]string)
case DataTypeSliceAny.String(): case DataTypeSliceAny:
return new([]any) return new([]any)
case DataTypeSliceString.String(): case DataTypeSliceString:
return new([]string) return new([]string)
case DataTypeSliceBool.String(): case DataTypeSliceBool:
return new([]bool) return new([]bool)
case DataTypeSliceInt.String(): case DataTypeSliceInt:
return new([]int) return new([]int)
case DataTypeSliceUint.String(): case DataTypeSliceUint:
return new([]uint) return new([]uint)
case DataTypeSliceFloat.String(): case DataTypeSliceFloat:
return new([]float64) return new([]float64)
case DataTypeSliceMapAnyAny.String(): case DataTypeSliceMapAnyAny:
// map[any]any 序列化会有问题,当做 map[string]any 处理 // map[any]any 序列化会有问题,当做 map[string]any 处理
return new([]map[string]any) return new([]map[string]any)
case DataTypeSliceMapStringAny.String(): case DataTypeSliceMapStringAny:
return new([]map[string]any) return new([]map[string]any)
default: default:
// 序列化之后的map // 序列化之后的map
for _, dataTypeItem := range DataTypeMapMarshal { for _, dataTypeItem := range DataTypeMapMarshal {
if dataTypeItem.String() == dataType { if dataTypeItem == dataType {
return "" return ""
} }
} }
// 序列化之后的slice // 序列化之后的slice
for _, dataTypeItem := range DataTypeSliceMarshal { for _, dataTypeItem := range DataTypeSliceMarshal {
if dataTypeItem.String() == dataType { if dataTypeItem == dataType {
return "" return ""
} }
} }
// 指定分隔符分割的slice // 指定分隔符分割的slice
for _, dataTypeItem := range DataTypeSliceSplit { for _, dataTypeItem := range DataTypeSliceSplit {
if dataTypeItem.String() == dataType { if dataTypeItem == dataType {
return "" return ""
} }
} }
// 未枚举的slice类型用any接收 // 未枚举的slice类型用any接收
for _, dataTypeItem := range DataTypeSlice { for _, dataTypeItem := range DataTypeSlice {
if dataTypeItem.String() == dataType { if dataTypeItem == dataType {
return new([]any) return new([]any)
} }
} }