From 9ca35bf51b04c884f164e318b58caa787086f548 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=99=BD=E8=8C=B6=E6=B8=85=E6=AC=A2?= Date: Mon, 8 May 2023 17:07:33 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96uint=E7=B1=BB=E5=9E=8B?= =?UTF-8?q?=E5=8C=85=E8=A3=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- uint.go | 85 ++++++++++++++++++++++++++++++++++++++++----------------- 1 file changed, 60 insertions(+), 25 deletions(-) diff --git a/uint.go b/uint.go index 0aace1f..69e574c 100644 --- a/uint.go +++ b/uint.go @@ -24,11 +24,17 @@ type Uint uint64 // Author : go_developer@163.com<白茶清欢> // // Date : 14:21 2023/5/5 -func (ui Uint) ToUint8() (uint8, error) { - if ui > math.MaxUint8 || ui < 0 { - return 0, fmt.Errorf("uint8 should between 0 and %v", uint8(math.MaxUint8)) +func (ui Uint) ToUint8() Uint8Result { + res := Uint8Result{ + Value: 0, + Err: nil, } - return uint8(ui), nil + if ui > math.MaxUint8 || ui < 0 { + res.Err = fmt.Errorf("uint8 should between 0 and %v", uint8(math.MaxUint8)) + return res + } + res.Value = uint8(ui) + return res } // ToUint16 ... @@ -36,11 +42,17 @@ func (ui Uint) ToUint8() (uint8, error) { // Author : go_developer@163.com<白茶清欢> // // Date : 14:25 2023/5/5 -func (ui Uint) ToUint16() (uint16, error) { - if ui > math.MaxUint16 || ui < 0 { - return 0, fmt.Errorf("uint16 should between 0 and %v", uint16(math.MaxUint16)) +func (ui Uint) ToUint16() Uint16Result { + res := Uint16Result{ + Value: 0, + Err: nil, } - return uint16(ui), nil + if ui > math.MaxUint16 || ui < 0 { + res.Err = fmt.Errorf("uint16 should between 0 and %v", uint16(math.MaxUint16)) + return res + } + res.Value = uint16(ui) + return res } // ToUint32 ... @@ -48,11 +60,17 @@ func (ui Uint) ToUint16() (uint16, error) { // Author : go_developer@163.com<白茶清欢> // // Date : 14:25 2023/5/5 -func (ui Uint) ToUint32() (uint32, error) { - if ui > math.MaxUint32 || ui < 0 { - return 0, fmt.Errorf("uint32 should between 0 and %v", uint32(math.MaxUint32)) +func (ui Uint) ToUint32() Uint32Result { + res := Uint32Result{ + Value: 0, + Err: nil, } - return uint32(ui), nil + if ui > math.MaxUint32 || ui < 0 { + res.Err = fmt.Errorf("uint32 should between 0 and %v", uint32(math.MaxUint32)) + return res + } + res.Value = uint32(ui) + return res } // ToUint64 ... @@ -60,11 +78,16 @@ func (ui Uint) ToUint32() (uint32, error) { // Author : go_developer@163.com<白茶清欢> // // Date : 14:30 2023/5/5 -func (ui Uint) ToUint64() (uint64, error) { - if ui > math.MaxUint64 || ui < 0 { - return 0, fmt.Errorf("uint64 should between 0 and %v", uint64(math.MaxUint64)) +func (ui Uint) ToUint64() Uint64Result { + res := Uint64Result{ + Value: 0, + Err: nil, } - return uint64(ui), nil + if ui > math.MaxUint64 || ui < 0 { + res.Err = fmt.Errorf("uint64 should between 0 and %v", uint64(math.MaxUint64)) + } + res.Value = uint64(ui) + return res } // ToUint ... @@ -72,11 +95,17 @@ func (ui Uint) ToUint64() (uint64, error) { // Author : go_developer@163.com<白茶清欢> // // Date : 14:31 2023/5/5 -func (ui Uint) ToUint() (uint, error) { - if ui > math.MaxUint || ui < 0 { - return 0, fmt.Errorf("uint should between 0 and %v", uint(math.MaxUint)) +func (ui Uint) ToUint() UintResult { + res := UintResult{ + Value: 0, + Err: nil, } - return uint(ui), nil + if ui > math.MaxUint || ui < 0 { + res.Err = fmt.Errorf("uint should between 0 and %v", uint(math.MaxUint)) + return res + } + res.Value = uint(ui) + return res } // ToString ... @@ -84,10 +113,16 @@ func (ui Uint) ToUint() (uint, error) { // Author : go_developer@163.com<白茶清欢> // // Date : 14:32 2023/5/5 -func (ui Uint) ToString() (string, error) { - uint64Val, err := ui.ToUint64() - if nil != err { - return "", err +func (ui Uint) ToString() StringResult { + uint64Val := ui.ToUint64() + if nil != uint64Val.Err { + return StringResult{ + Value: "", + Err: uint64Val.Err, + } + } + return StringResult{ + Value: fmt.Sprintf("%v", uint64Val), + Err: nil, } - return fmt.Sprintf("%v", uint64Val), nil }