- TryInterface2Int64和TryInterface2Float64兼容string
This commit is contained in:
@@ -7,6 +7,7 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"math"
|
"math"
|
||||||
"net/url"
|
"net/url"
|
||||||
|
"reflect"
|
||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
@@ -70,15 +71,13 @@ func TryInterface2Int64(data interface{}) (num int64, err error) {
|
|||||||
if dataNumber, ok := data.(int); ok {
|
if dataNumber, ok := data.(int); ok {
|
||||||
return int64(dataNumber), nil
|
return int64(dataNumber), nil
|
||||||
}
|
}
|
||||||
dataNumber, ok := data.(json.Number)
|
if dataNumber, ok := data.(json.Number); ok {
|
||||||
if !ok {
|
return dataNumber.Int64()
|
||||||
return 0, fmt.Errorf("data is not json.Number:%v to int64", data)
|
|
||||||
}
|
}
|
||||||
retVal, err := dataNumber.Int64()
|
if str, ok := data.(string); ok {
|
||||||
if err != nil {
|
return Str2Int64(str), nil
|
||||||
return num, err
|
|
||||||
}
|
}
|
||||||
return retVal, nil
|
return 0, fmt.Errorf("data is not json.Number, it's %s, value:%v", reflect.TypeOf(data).String(), data)
|
||||||
}
|
}
|
||||||
|
|
||||||
func MustInterface2Int64(data interface{}) int64 {
|
func MustInterface2Int64(data interface{}) int64 {
|
||||||
@@ -114,15 +113,13 @@ func TryInterface2Float64(data interface{}) (num float64, err error) {
|
|||||||
if dataNumber, ok := data.(float32); ok {
|
if dataNumber, ok := data.(float32); ok {
|
||||||
return float64(dataNumber), nil
|
return float64(dataNumber), nil
|
||||||
}
|
}
|
||||||
dataNumber, ok := data.(json.Number)
|
if dataNumber, ok := data.(json.Number); ok {
|
||||||
if !ok {
|
return dataNumber.Float64()
|
||||||
return num, fmt.Errorf("data is not json.Number:%v", data)
|
|
||||||
}
|
}
|
||||||
retVal, err := dataNumber.Float64()
|
if str, ok := data.(string); ok {
|
||||||
if err != nil {
|
return Str2Float64(str), nil
|
||||||
return num, err
|
|
||||||
}
|
}
|
||||||
return retVal, nil
|
return 0, fmt.Errorf("data is not json.Number, it's %s, value:%v", reflect.TypeOf(data).String(), data)
|
||||||
}
|
}
|
||||||
|
|
||||||
func MustInterface2Float64(data interface{}) float64 {
|
func MustInterface2Float64(data interface{}) float64 {
|
||||||
|
|||||||
Reference in New Issue
Block a user