优化int包装
This commit is contained in:
parent
fa2f27724d
commit
94707fcb3e
160
define.go
160
define.go
@ -43,3 +43,163 @@ const (
|
|||||||
DataTypeObject = "map[string]interface"
|
DataTypeObject = "map[string]interface"
|
||||||
DataTypeAnyObject = "map[interface]interface"
|
DataTypeAnyObject = "map[interface]interface"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// Int8Result ...
|
||||||
|
//
|
||||||
|
// Author : go_developer@163.com<白茶清欢>
|
||||||
|
//
|
||||||
|
// Date : 16:25 2023/5/8
|
||||||
|
type Int8Result struct {
|
||||||
|
Value int8
|
||||||
|
Err error
|
||||||
|
}
|
||||||
|
|
||||||
|
// Int16Result ...
|
||||||
|
//
|
||||||
|
// Author : go_developer@163.com<白茶清欢>
|
||||||
|
//
|
||||||
|
// Date : 16:26 2023/5/8
|
||||||
|
type Int16Result struct {
|
||||||
|
Value int16
|
||||||
|
Err error
|
||||||
|
}
|
||||||
|
|
||||||
|
// Int32Result ...
|
||||||
|
//
|
||||||
|
// Author : go_developer@163.com<白茶清欢>
|
||||||
|
//
|
||||||
|
// Date : 16:26 2023/5/8
|
||||||
|
type Int32Result struct {
|
||||||
|
Value int32
|
||||||
|
Err error
|
||||||
|
}
|
||||||
|
|
||||||
|
// Int64Result ...
|
||||||
|
//
|
||||||
|
// Author : go_developer@163.com<白茶清欢>
|
||||||
|
//
|
||||||
|
// Date : 16:26 2023/5/8
|
||||||
|
type Int64Result struct {
|
||||||
|
Value int64
|
||||||
|
Err error
|
||||||
|
}
|
||||||
|
|
||||||
|
// IntResult ...
|
||||||
|
//
|
||||||
|
// Author : go_developer@163.com<白茶清欢>
|
||||||
|
//
|
||||||
|
// Date : 16:26 2023/5/8
|
||||||
|
type IntResult struct {
|
||||||
|
Value int
|
||||||
|
Err error
|
||||||
|
}
|
||||||
|
|
||||||
|
// Uint8Result ...
|
||||||
|
//
|
||||||
|
// Author : go_developer@163.com<白茶清欢>
|
||||||
|
//
|
||||||
|
// Date : 16:28 2023/5/8
|
||||||
|
type Uint8Result struct {
|
||||||
|
Value uint8
|
||||||
|
Err error
|
||||||
|
}
|
||||||
|
|
||||||
|
// Uint16Result ...
|
||||||
|
//
|
||||||
|
// Author : go_developer@163.com<白茶清欢>
|
||||||
|
//
|
||||||
|
// Date : 16:28 2023/5/8
|
||||||
|
type Uint16Result struct {
|
||||||
|
Value uint16
|
||||||
|
Err error
|
||||||
|
}
|
||||||
|
|
||||||
|
// Uint32Result ...
|
||||||
|
//
|
||||||
|
// Author : go_developer@163.com<白茶清欢>
|
||||||
|
//
|
||||||
|
// Date : 16:28 2023/5/8
|
||||||
|
type Uint32Result struct {
|
||||||
|
Value uint32
|
||||||
|
Err error
|
||||||
|
}
|
||||||
|
|
||||||
|
// Uint64Result ...
|
||||||
|
//
|
||||||
|
// Author : go_developer@163.com<白茶清欢>
|
||||||
|
//
|
||||||
|
// Date : 16:28 2023/5/8
|
||||||
|
type Uint64Result struct {
|
||||||
|
Value uint64
|
||||||
|
Err error
|
||||||
|
}
|
||||||
|
|
||||||
|
// UintResult ...
|
||||||
|
//
|
||||||
|
// Author : go_developer@163.com<白茶清欢>
|
||||||
|
//
|
||||||
|
// Date : 16:29 2023/5/8
|
||||||
|
type UintResult struct {
|
||||||
|
Value uint
|
||||||
|
Err error
|
||||||
|
}
|
||||||
|
|
||||||
|
// Float32Result ...
|
||||||
|
//
|
||||||
|
// Author : go_developer@163.com<白茶清欢>
|
||||||
|
//
|
||||||
|
// Date : 16:31 2023/5/8
|
||||||
|
type Float32Result struct {
|
||||||
|
Value float32
|
||||||
|
Err error
|
||||||
|
}
|
||||||
|
|
||||||
|
// Float64Result ...
|
||||||
|
//
|
||||||
|
// Author : go_developer@163.com<白茶清欢>
|
||||||
|
//
|
||||||
|
// Date : 16:32 2023/5/8
|
||||||
|
type Float64Result struct {
|
||||||
|
Value float64
|
||||||
|
Err error
|
||||||
|
}
|
||||||
|
|
||||||
|
// Any ...
|
||||||
|
//
|
||||||
|
// Author : go_developer@163.com<白茶清欢>
|
||||||
|
//
|
||||||
|
// Date : 16:40 2023/5/8
|
||||||
|
type Any struct {
|
||||||
|
Value interface{}
|
||||||
|
Err error
|
||||||
|
}
|
||||||
|
|
||||||
|
// BoolResult ...
|
||||||
|
//
|
||||||
|
// Author : go_developer@163.com<白茶清欢>
|
||||||
|
//
|
||||||
|
// Date : 16:36 2023/5/8
|
||||||
|
type BoolResult struct {
|
||||||
|
Value bool
|
||||||
|
Err error
|
||||||
|
}
|
||||||
|
|
||||||
|
// ObjectResult ...
|
||||||
|
//
|
||||||
|
// Author : go_developer@163.com<白茶清欢>
|
||||||
|
//
|
||||||
|
// Date : 16:38 2023/5/8
|
||||||
|
type ObjectResult struct {
|
||||||
|
Value map[string]interface{}
|
||||||
|
Err error
|
||||||
|
}
|
||||||
|
|
||||||
|
// StringResult ...
|
||||||
|
//
|
||||||
|
// Author : go_developer@163.com<白茶清欢>
|
||||||
|
//
|
||||||
|
// Date : 16:57 2023/5/8
|
||||||
|
type StringResult struct {
|
||||||
|
Value string
|
||||||
|
Err error
|
||||||
|
}
|
||||||
|
85
int.go
85
int.go
@ -24,11 +24,17 @@ type Int int64
|
|||||||
// Author : go_developer@163.com<白茶清欢>
|
// Author : go_developer@163.com<白茶清欢>
|
||||||
//
|
//
|
||||||
// Date : 13:57 2023/5/5
|
// Date : 13:57 2023/5/5
|
||||||
func (i Int) ToInt8() (int8, error) {
|
func (i Int) ToInt8() Int8Result {
|
||||||
if math.MaxInt8 < int64(i) || math.MinInt8 > int64(i) {
|
res := Int8Result{
|
||||||
return 0, fmt.Errorf("int8 value should between %v and %v ", int8(math.MinInt8), int8(math.MaxInt8))
|
Value: 0,
|
||||||
|
Err: nil,
|
||||||
}
|
}
|
||||||
return int8(i), nil
|
if math.MaxInt8 < int64(i) || math.MinInt8 > int64(i) {
|
||||||
|
res.Err = fmt.Errorf("int8 value should between %v and %v ", int8(math.MinInt8), int8(math.MaxInt8))
|
||||||
|
return res
|
||||||
|
}
|
||||||
|
res.Value = int8(i)
|
||||||
|
return res
|
||||||
}
|
}
|
||||||
|
|
||||||
// ToInt16 ...
|
// ToInt16 ...
|
||||||
@ -36,11 +42,17 @@ func (i Int) ToInt8() (int8, error) {
|
|||||||
// Author : go_developer@163.com<白茶清欢>
|
// Author : go_developer@163.com<白茶清欢>
|
||||||
//
|
//
|
||||||
// Date : 14:05 2023/5/5
|
// Date : 14:05 2023/5/5
|
||||||
func (i Int) ToInt16() (int16, error) {
|
func (i Int) ToInt16() Int16Result {
|
||||||
if math.MaxInt16 < int64(i) || math.MinInt16 > int64(i) {
|
res := Int16Result{
|
||||||
return 0, fmt.Errorf("int16 value should between %v and %v ", int16(math.MinInt16), int16(math.MaxInt16))
|
Value: 0,
|
||||||
|
Err: nil,
|
||||||
}
|
}
|
||||||
return int16(i), nil
|
if math.MaxInt16 < int64(i) || math.MinInt16 > int64(i) {
|
||||||
|
res.Err = fmt.Errorf("int16 value should between %v and %v ", int16(math.MinInt16), int16(math.MaxInt16))
|
||||||
|
return res
|
||||||
|
}
|
||||||
|
res.Value = int16(i)
|
||||||
|
return res
|
||||||
}
|
}
|
||||||
|
|
||||||
// ToInt32 ...
|
// ToInt32 ...
|
||||||
@ -48,11 +60,17 @@ func (i Int) ToInt16() (int16, error) {
|
|||||||
// Author : go_developer@163.com<白茶清欢>
|
// Author : go_developer@163.com<白茶清欢>
|
||||||
//
|
//
|
||||||
// Date : 14:05 2023/5/5
|
// Date : 14:05 2023/5/5
|
||||||
func (i Int) ToInt32() (int32, error) {
|
func (i Int) ToInt32() Int32Result {
|
||||||
if math.MaxInt32 < int64(i) || math.MinInt32 > int64(i) {
|
res := Int32Result{
|
||||||
return 0, fmt.Errorf("int32 value should between %v and %v ", int32(math.MinInt32), int32(math.MaxInt32))
|
Value: 0,
|
||||||
|
Err: nil,
|
||||||
}
|
}
|
||||||
return int32(i), nil
|
if math.MaxInt32 < int64(i) || math.MinInt32 > int64(i) {
|
||||||
|
res.Err = fmt.Errorf("int32 value should between %v and %v ", int32(math.MinInt32), int32(math.MaxInt32))
|
||||||
|
return res
|
||||||
|
}
|
||||||
|
res.Value = int32(i)
|
||||||
|
return res
|
||||||
}
|
}
|
||||||
|
|
||||||
// ToInt64 ...
|
// ToInt64 ...
|
||||||
@ -60,11 +78,17 @@ func (i Int) ToInt32() (int32, error) {
|
|||||||
// Author : go_developer@163.com<白茶清欢>
|
// Author : go_developer@163.com<白茶清欢>
|
||||||
//
|
//
|
||||||
// Date : 14:06 2023/5/5
|
// Date : 14:06 2023/5/5
|
||||||
func (i Int) ToInt64() (int64, error) {
|
func (i Int) ToInt64() Int64Result {
|
||||||
if math.MaxInt64 < i || math.MinInt64 > i {
|
res := Int64Result{
|
||||||
return 0, fmt.Errorf("int64 value should between %v and %v ", int64(math.MinInt64), int64(math.MaxInt64))
|
Value: 0,
|
||||||
|
Err: nil,
|
||||||
}
|
}
|
||||||
return int64(i), nil
|
if math.MaxInt64 < i || math.MinInt64 > i {
|
||||||
|
res.Err = fmt.Errorf("int64 value should between %v and %v ", int64(math.MinInt64), int64(math.MaxInt64))
|
||||||
|
return res
|
||||||
|
}
|
||||||
|
res.Value = int64(i)
|
||||||
|
return res
|
||||||
}
|
}
|
||||||
|
|
||||||
// ToInt ...
|
// ToInt ...
|
||||||
@ -72,11 +96,16 @@ func (i Int) ToInt64() (int64, error) {
|
|||||||
// Author : go_developer@163.com<白茶清欢>
|
// Author : go_developer@163.com<白茶清欢>
|
||||||
//
|
//
|
||||||
// Date : 14:07 2023/5/5
|
// Date : 14:07 2023/5/5
|
||||||
func (i Int) ToInt() (int, error) {
|
func (i Int) ToInt() IntResult {
|
||||||
if math.MaxInt < i || math.MinInt > i {
|
res := IntResult{
|
||||||
return 0, fmt.Errorf("int value should between %v and %v ", int(math.MinInt), int(math.MaxInt))
|
Value: 0,
|
||||||
|
Err: nil,
|
||||||
}
|
}
|
||||||
return int(i), nil
|
if math.MaxInt < i || math.MinInt > i {
|
||||||
|
res.Err = fmt.Errorf("int value should between %v and %v ", int(math.MinInt), int(math.MaxInt))
|
||||||
|
}
|
||||||
|
res.Value = int(i)
|
||||||
|
return res
|
||||||
}
|
}
|
||||||
|
|
||||||
// ToString ...
|
// ToString ...
|
||||||
@ -84,10 +113,16 @@ func (i Int) ToInt() (int, error) {
|
|||||||
// Author : go_developer@163.com<白茶清欢>
|
// Author : go_developer@163.com<白茶清欢>
|
||||||
//
|
//
|
||||||
// Date : 14:07 2023/5/5
|
// Date : 14:07 2023/5/5
|
||||||
func (i Int) ToString() (string, error) {
|
func (i Int) ToString() StringResult {
|
||||||
in64Val, err := i.ToInt64()
|
result := i.ToInt64()
|
||||||
if nil != err {
|
if nil != result.Err {
|
||||||
return "", err
|
return StringResult{
|
||||||
|
Value: "",
|
||||||
|
Err: result.Err,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return StringResult{
|
||||||
|
Value: fmt.Sprintf("%v", result.Value),
|
||||||
|
Err: nil,
|
||||||
}
|
}
|
||||||
return fmt.Sprintf("%v", in64Val), nil
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user