From e7e95ff49883bbd9df639f1a519176841395dd37 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Sun, 16 Jun 2024 12:57:13 +0800 Subject: [PATCH] 1 --- convert.go | 15 +++++++++++++++ strutils.go | 19 +++++++++++++++++++ 2 files changed, 34 insertions(+) diff --git a/convert.go b/convert.go index b4ad072..baecea0 100644 --- a/convert.go +++ b/convert.go @@ -107,6 +107,16 @@ func ToInt64Ex(x interface{}) (int64, error) { return 0, errors.New("ToInt64Ex error type") } +func SafeToInt64(x interface{}) int64 { + val, _ := ToInt64Ex(x) + return val +} + +func SafeToInt32(x interface{}) int32 { + val, _ := ToInt64Ex(x) + return int32(val) +} + func ToFloat64Ex(x interface{}) (float64, error) { switch i := x.(type) { case int: @@ -144,6 +154,11 @@ func ToStringEx(x interface{}) (string, error) { return "", errors.New("ToStringEx error type") } +func SafeToString(x interface{}) string { + val, _ := ToStringEx(x) + return val +} + func DuckToSimple[T string | int | int32 | int64 | float32 | float64]( d interface{}, s *T) bool { var sx interface{} = s diff --git a/strutils.go b/strutils.go index 07ed35a..c275950 100644 --- a/strutils.go +++ b/strutils.go @@ -110,6 +110,15 @@ func NewEmptyStrPtr() *string { return &tmpStr } +func IsPureNumber(str string) bool { + for i := 0; i < len(str); i++ { + if !(str[i] >= '0' && str[i] <= '9') { + return false + } + } + return true +} + func GenFieldKvEmptyAsNull(key string, val string) []string { if val == "" { return []string{"!" + key, "NULL"} @@ -117,3 +126,13 @@ func GenFieldKvEmptyAsNull(key string, val string) []string { return []string{key, val} } } + +func AdjustRangeValue[T int | int32 | int64 | float32 | float64](value T, minV T, maxV T) T { + if value < minV { + value = minV + } + if value > maxV { + value = maxV + } + return value +}