From 1aad276c880e5072744753fb0103a8d08c34600b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=99=BD=E8=8C=B6=E6=B8=85=E6=AC=A2?= Date: Fri, 21 Mar 2025 17:11:21 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=86=E5=8C=96int/uint/float=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E7=B1=BB=E5=9E=8B=E5=AE=9A=E4=B9=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- data_type.go | 73 +++++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 61 insertions(+), 12 deletions(-) diff --git a/data_type.go b/data_type.go index b09c53d..09ace11 100644 --- a/data_type.go +++ b/data_type.go @@ -41,8 +41,17 @@ var ( DataTypeNil DataType = "nil" // nil DataTypePtr DataType = "ptr" // 指针 DataTypeInt DataType = "int" // int类型 -> int64 + DataTypeInt8 DataType = "int8" // int8类型 + DataTypeInt16 DataType = "int16" // int16类型 + DataTypeInt32 DataType = "int32" // int32类型 + DataTypeInt64 DataType = "int64" // int64类型 DataTypeUint DataType = "uint" // uint类型 -> uint64 - DataTypeFloat DataType = "float" // float类型 -> float64 + DataTypeUint8 DataType = "uint8" // uint8类型 + DataTypeUint16 DataType = "uint16" // uint16类型 + DataTypeUint32 DataType = "uint32" // uint32类型 + DataTypeUint64 DataType = "uint64" // uint64类型 + DataTypeFloat32 DataType = "float32" // float32类型 + DataTypeFloat64 DataType = "float64" // float64类型 DataTypeBool DataType = "bool" // bool类型 DataTypeString DataType = "string" // 字符串类型 DataTypeSliceAny DataType = "[]any" // any数组 -> []any @@ -87,8 +96,17 @@ var ( DataTypeAny DataType = "any" // 任意类型 -> any DataTypeStringPtr DataType = "string_ptr" // *string, 字符串指针 DataTypeIntPtr DataType = "int_ptr" // *int64, int64指针 + DataTypeInt8Ptr DataType = "int8_ptr" // *int8, int8指针 + DataTypeInt16Ptr DataType = "int16_ptr" // *int16, int16指针 + DataTypeInt32Ptr DataType = "int32_ptr" // *int32, int32指针 + DataTypeInt64Ptr DataType = "int64_ptr" // *int64, int64指针 DataTypeUintPtr DataType = "uint_ptr" // *uint64, uint64指针 - DataTypeFloatPtr DataType = "float_ptr" // *float64, float64指针 + DataTypeUint8Ptr DataType = "uint8_ptr" // *uint8, uint8指针 + DataTypeUint16Ptr DataType = "uint16_ptr" // *uint16, uint16指针 + DataTypeUint32Ptr DataType = "uint32_ptr" // *uint32, uint32指针 + DataTypeUint64Ptr DataType = "uint64_ptr" // *uint64, uint64指针 + DataTypeFloat32Ptr DataType = "float32_ptr" // *float32, float32指针 + DataTypeFloat64Ptr DataType = "float64_ptr" // *float64, float64指针 DataTypeBoolPtr DataType = "bool_ptr" // *bool, 字符串指针 ) @@ -125,9 +143,18 @@ var ( DataTypeList = []DataTypeDesc{ // 基础数据类型 getDataTypeDesc(DataTypeAny, "任意数据类型"), - getDataTypeDesc(DataTypeInt, "int类型 -> int64"), - getDataTypeDesc(DataTypeUint, "uint类型 -> uint64"), - getDataTypeDesc(DataTypeFloat, "float类型 -> float64"), + getDataTypeDesc(DataTypeInt, "int类型"), + getDataTypeDesc(DataTypeInt8, "int8类型"), + getDataTypeDesc(DataTypeInt16, "int16类型"), + getDataTypeDesc(DataTypeInt32, "int32类型"), + getDataTypeDesc(DataTypeInt64, "int64类型"), + getDataTypeDesc(DataTypeUint, "uint类型"), + getDataTypeDesc(DataTypeUint8, "uint8类型"), + getDataTypeDesc(DataTypeUint16, "uint16类型"), + getDataTypeDesc(DataTypeUint32, "uint32类型"), + getDataTypeDesc(DataTypeUint64, "uint64类型"), + getDataTypeDesc(DataTypeFloat32, "float32类型"), + getDataTypeDesc(DataTypeFloat64, "float64类型"), getDataTypeDesc(DataTypeBool, "bool类型"), getDataTypeDesc(DataTypeString, "字符串类型"), @@ -176,9 +203,18 @@ var ( // 基础类型的指针类型 getDataTypeDesc(DataTypeStringPtr, "*string, 字符串指针"), - getDataTypeDesc(DataTypeUintPtr, "*int64, int64指针"), - getDataTypeDesc(DataTypeIntPtr, "*int64, *uint64, uint64指针"), - getDataTypeDesc(DataTypeFloatPtr, "*float64, float64指针"), + getDataTypeDesc(DataTypeUintPtr, "*uint, uint指针"), + getDataTypeDesc(DataTypeUintPtr, "*uint8, uint8指针"), + getDataTypeDesc(DataTypeUintPtr, "*uint16, uint16指针"), + getDataTypeDesc(DataTypeUintPtr, "*uint32, uint32指针"), + getDataTypeDesc(DataTypeUintPtr, "*uint64, uint64指针"), + getDataTypeDesc(DataTypeIntPtr, "*int, int指针"), + getDataTypeDesc(DataTypeIntPtr, "*int8, int8指针"), + getDataTypeDesc(DataTypeIntPtr, "*int16, int16指针"), + getDataTypeDesc(DataTypeIntPtr, "*int32, int32指针"), + getDataTypeDesc(DataTypeIntPtr, "*int64, int64指针"), + getDataTypeDesc(DataTypeFloat32Ptr, "*float32, float32指针"), + getDataTypeDesc(DataTypeFloat32Ptr, "*float64, float64指针"), getDataTypeDesc(DataTypeBoolPtr, "*bool, 字符串指针"), } ) @@ -197,10 +233,23 @@ func getDataTypeDesc(value DataType, description string) DataTypeDesc { var ( // DataTypeBaseNumber 基础的int类型 - DataTypeBaseNumber = []DataType{DataTypeInt, DataTypeUint, DataTypeFloat, DataTypeIntPtr, DataTypeUintPtr, DataTypeFloatPtr} - DataTypeBaseInt = []DataType{DataTypeInt, DataTypeIntPtr} - DataTypeBaseUint = []DataType{DataTypeUint, DataTypeUintPtr} - DataTypeBaseFloat = []DataType{DataTypeFloat, DataTypeFloatPtr} + DataTypeBaseNumber = []DataType{ + DataTypeInt, DataTypeInt8, DataTypeInt16, DataTypeInt32, DataTypeInt64, + DataTypeUint, DataTypeUint8, DataTypeUint16, DataTypeUint32, DataTypeUint64, + DataTypeFloat32, DataTypeFloat64, + DataTypeIntPtr, DataTypeInt8Ptr, DataTypeInt16Ptr, DataTypeInt32Ptr, DataTypeInt64Ptr, + DataTypeUintPtr, DataTypeUint8Ptr, DataTypeUint16Ptr, DataTypeUint32Ptr, DataTypeUint64Ptr, + DataTypeFloat32Ptr, DataTypeFloat64Ptr, + } + DataTypeBaseInt = []DataType{ + DataTypeInt, DataTypeInt8, DataTypeInt16, DataTypeInt32, DataTypeInt64, + DataTypeIntPtr, DataTypeInt8Ptr, DataTypeInt16Ptr, DataTypeInt32Ptr, DataTypeInt64Ptr, + } + DataTypeBaseUint = []DataType{ + DataTypeUint, DataTypeUint8, DataTypeUint16, DataTypeUint32, DataTypeUint64, + DataTypeUintPtr, DataTypeUint8Ptr, DataTypeUint16Ptr, DataTypeUint32Ptr, DataTypeUint64Ptr, + } + DataTypeBaseFloat = []DataType{DataTypeFloat32, DataTypeFloat64, DataTypeFloat32Ptr, DataTypeFloat64Ptr} DataTypeBaseString = []DataType{DataTypeString, DataTypeStringPtr} DataTypeBaseBool = []DataType{DataTypeBool, DataTypeBoolPtr} DataTypeSliceMarshal = []DataType{