// Package util ... // // Description : util ... // // Author : go_developer@163.com<白茶清欢> // // Date : 2023-05-04 18:25 package util import ( "strings" "github.com/pkg/errors" ) type stringConvert struct { } // ToFloat32 ... // // Author : go_developer@163.com<白茶清欢> // // Date : 18:26 2023/5/4 func (sc *stringConvert) ToFloat32(str string) (float32, error) { var ( err error res float32 ) err = ConvertAssign(&res, str) return res, err } // ToFloat64 ... // // Author : go_developer@163.com<白茶清欢> // // Date : 18:26 2023/5/4 func (sc *stringConvert) ToFloat64(str string) (float64, error) { var ( err error res float64 ) err = ConvertAssign(&res, str) return res, err } // ToDouble 转double // // Author : go_developer@163.com<白茶清欢> // // Date : 18:33 2023/5/4 func (sc *stringConvert) ToDouble(str string) (float64, error) { return sc.ToFloat64(str) } // ToNumber 转数字, 使用最高精度的float64 // // Author : go_developer@163.com<白茶清欢> // // Date : 18:33 2023/5/4 func (sc *stringConvert) ToNumber(str string) (float64, error) { return sc.ToFloat64(str) } // ToInt8 ... // // Author : go_developer@163.com<白茶清欢> // // Date : 18:29 2023/5/4 func (sc *stringConvert) ToInt8(str string) (int8, error) { var ( err error res int8 ) err = ConvertAssign(&res, str) return res, err } // ToInt16 ... // // Author : go_developer@163.com<白茶清欢> // // Date : 18:29 2023/5/4 func (sc *stringConvert) ToInt16(str string) (int16, error) { var ( err error res int16 ) err = ConvertAssign(&res, str) return res, err } // ToInt32 ... // // Author : go_developer@163.com<白茶清欢> // // Date : 18:29 2023/5/4 func (sc *stringConvert) ToInt32(str string) (int32, error) { var ( err error res int32 ) err = ConvertAssign(&res, str) return res, err } // ToInt64 ... // // Author : go_developer@163.com<白茶清欢> // // Date : 18:29 2023/5/4 func (sc *stringConvert) ToInt64(str string) (int64, error) { var ( err error res int64 ) err = ConvertAssign(&res, str) return res, err } // ToInt ... // // Author : go_developer@163.com<白茶清欢> // // Date : 10:47 2023/5/5 func (sc *stringConvert) ToInt(str string) (int, error) { var ( err error res int ) err = ConvertAssign(&res, str) return res, err } // ToUint8 ... // // Author : go_developer@163.com<白茶清欢> // // Date : 18:30 2023/5/4 func (sc *stringConvert) ToUint8(str string) (uint8, error) { var ( err error res uint8 ) err = ConvertAssign(&res, str) return res, err } // ToUint16 ... // // Author : go_developer@163.com<白茶清欢> // // Date : 18:29 2023/5/4 func (sc *stringConvert) ToUint16(str string) (uint16, error) { var ( err error res uint16 ) err = ConvertAssign(&res, str) return res, err } // ToUint32 ... // // Author : go_developer@163.com<白茶清欢> // // Date : 18:29 2023/5/4 func (sc *stringConvert) ToUint32(str string) (uint32, error) { var ( err error res uint32 ) err = ConvertAssign(&res, str) return res, err } // ToUint64 ... // // Author : go_developer@163.com<白茶清欢> // // Date : 18:29 2023/5/4 func (sc *stringConvert) ToUint64(str string) (uint64, error) { var ( err error res uint64 ) err = ConvertAssign(&res, str) return res, err } // ToUint ... // // Author : go_developer@163.com<白茶清欢> // // Date : 18:29 2023/5/4 func (sc *stringConvert) ToUint(str string) (uint, error) { var ( err error res uint ) err = ConvertAssign(&res, str) return res, err } // ToBool ... // // Author : go_developer@163.com<白茶清欢> // // Date : 18:34 2023/5/4 func (sc *stringConvert) ToBool(str string) (bool, error) { var ( err error res bool ) err = ConvertAssign(&res, str) return res, err } // ToObject ... // // Author : go_developer@163.com<白茶清欢> // // Date : 18:35 2023/5/4 func (sc *stringConvert) ToObject(str string) (map[string]interface{}, error) { var ( err error result map[string]interface{} ) if err = JSON.UnmarshalWithNumber([]byte(str), &result); nil != err { return nil, err } return result, nil } // ToStruct ... // // Author : go_developer@163.com<白茶清欢> // // Date : 18:38 2023/5/4 func (sc *stringConvert) ToStruct(str string, receiver interface{}) error { if nil == receiver { return errors.New("receiver is nil") } return JSON.UnmarshalWithNumber([]byte(str), receiver) } // ToInt8Slice ... // // Author : go_developer@163.com<白茶清欢> // // Date : 18:55 2023/5/4 func (sc *stringConvert) ToInt8Slice(str string, splitChar ...string) ([]int8, error) { var ( err error res []int8 ) isSplit := len(splitChar) > 0 if !isSplit { if err = JSON.UnmarshalWithNumber([]byte(str), &res); nil != err { return nil, err } return res, nil } res = make([]int8, 0) arr := strings.Split(str, splitChar[0]) for _, item := range arr { if itemVal, err := sc.ToInt8(item); nil != err { return nil, err } else { res = append(res, itemVal) } } return res, nil } // ToInt16Slice ... // // Author : go_developer@163.com<白茶清欢> // // Date : 19:01 2023/5/4 func (sc *stringConvert) ToInt16Slice(str string, splitChar ...string) ([]int16, error) { var ( err error res []int16 ) isSplit := len(splitChar) > 0 if !isSplit { if err = JSON.UnmarshalWithNumber([]byte(str), &res); nil != err { return nil, err } return res, nil } res = make([]int16, 0) arr := strings.Split(str, splitChar[0]) for _, item := range arr { if itemVal, err := sc.ToInt16(item); nil != err { return nil, err } else { res = append(res, itemVal) } } return res, nil } // ToInt32Slice ... // // Author : go_developer@163.com<白茶清欢> // // Date : 19:03 2023/5/4 func (sc *stringConvert) ToInt32Slice(str string, splitChar ...string) ([]int32, error) { var ( err error res []int32 ) isSplit := len(splitChar) > 0 if !isSplit { if err = JSON.UnmarshalWithNumber([]byte(str), &res); nil != err { return nil, err } return res, nil } res = make([]int32, 0) arr := strings.Split(str, splitChar[0]) for _, item := range arr { if itemVal, err := sc.ToInt32(item); nil != err { return nil, err } else { res = append(res, itemVal) } } return res, nil } // ToInt64Slice ... // // Author : go_developer@163.com<白茶清欢> // // Date : 19:04 2023/5/4 func (sc *stringConvert) ToInt64Slice(str string, splitChar ...string) ([]int64, error) { var ( err error res []int64 ) isSplit := len(splitChar) > 0 if !isSplit { if err = JSON.UnmarshalWithNumber([]byte(str), &res); nil != err { return nil, err } return res, nil } res = make([]int64, 0) arr := strings.Split(str, splitChar[0]) for _, item := range arr { if itemVal, err := sc.ToInt64(item); nil != err { return nil, err } else { res = append(res, itemVal) } } return res, nil } // ToIntSlice ... // // Author : go_developer@163.com<白茶清欢> // // Date : 19:04 2023/5/4 func (sc *stringConvert) ToIntSlice(str string, splitChar ...string) ([]int, error) { var ( err error res []int ) isSplit := len(splitChar) > 0 if !isSplit { if err = JSON.UnmarshalWithNumber([]byte(str), &res); nil != err { return nil, err } return res, nil } res = make([]int, 0) arr := strings.Split(str, splitChar[0]) for _, item := range arr { if itemVal, err := sc.ToInt(item); nil != err { return nil, err } else { res = append(res, itemVal) } } return res, nil }