// Package wrapper ... // // Description : wrapper ... // // Author : go_developer@163.com<白茶清欢> // // Date : 2023-05-05 11:59 package wrapper import ( "errors" "git.zhangdeman.cn/zhangdeman/util" "strings" ) // String 字符串类型包装 // // Author : go_developer@163.com<白茶清欢> // // Date : 12:07 2023/5/5 type String string // ToFloat32 ... // // Author : go_developer@163.com<白茶清欢> // // Date : 18:26 2023/5/4 func (str String) ToFloat32() Float32Result { var ( res Float32Result ) res.Err = util.ConvertAssign(&res.Value, str) return res } // ToFloat64 ... // // Author : go_developer@163.com<白茶清欢> // // Date : 18:26 2023/5/4 func (str String) ToFloat64() Float64Result { var ( res Float64Result ) res.Err = util.ConvertAssign(&res.Value, str) return res } // ToDouble 转double // // Author : go_developer@163.com<白茶清欢> // // Date : 18:33 2023/5/4 func (str String) ToDouble() Float64Result { return str.ToFloat64() } // ToNumber 转数字, 使用最高精度的float64 // // Author : go_developer@163.com<白茶清欢> // // Date : 18:33 2023/5/4 func (str String) ToNumber() Float64Result { return str.ToFloat64() } // ToInt8 ... // // Author : go_developer@163.com<白茶清欢> // // Date : 18:29 2023/5/4 func (str String) ToInt8() Int8Result { var ( res Int8Result ) res.Err = util.ConvertAssign(&res.Value, str) return res } // ToInt16 ... // // Author : go_developer@163.com<白茶清欢> // // Date : 18:29 2023/5/4 func (str String) ToInt16() Int16Result { var ( res Int16Result ) res.Err = util.ConvertAssign(&res.Value, str) return res } // ToInt32 ... // // Author : go_developer@163.com<白茶清欢> // // Date : 18:29 2023/5/4 func (str String) ToInt32() Int32Result { var ( res Int32Result ) res.Err = util.ConvertAssign(&res.Value, str) return res } // ToInt64 ... // // Author : go_developer@163.com<白茶清欢> // // Date : 18:29 2023/5/4 func (str String) ToInt64() Int64Result { var ( res Int64Result ) res.Err = util.ConvertAssign(&res.Value, str) return res } // ToInt ... // // Author : go_developer@163.com<白茶清欢> // // Date : 10:47 2023/5/5 func (str String) ToInt() IntResult { var ( res IntResult ) res.Err = util.ConvertAssign(&res.Value, str) return res } // ToUint8 ... // // Author : go_developer@163.com<白茶清欢> // // Date : 18:30 2023/5/4 func (str String) ToUint8() Uint8Result { var ( res Uint8Result ) res.Err = util.ConvertAssign(&res.Value, str) return res } // ToUint16 ... // // Author : go_developer@163.com<白茶清欢> // // Date : 18:29 2023/5/4 func (str String) ToUint16() Uint16Result { var ( res Uint16Result ) res.Err = util.ConvertAssign(&res.Value, str) return res } // ToUint32 ... // // Author : go_developer@163.com<白茶清欢> // // Date : 18:29 2023/5/4 func (str String) ToUint32() Uint32Result { var ( res Uint32Result ) res.Err = util.ConvertAssign(&res.Value, str) return res } // ToUint64 ... // // Author : go_developer@163.com<白茶清欢> // // Date : 18:29 2023/5/4 func (str String) ToUint64() Uint64Result { var ( res Uint64Result ) res.Err = util.ConvertAssign(&res.Value, str) return res } // ToUint ... // // Author : go_developer@163.com<白茶清欢> // // Date : 18:29 2023/5/4 func (str String) ToUint() UintResult { var ( res UintResult ) res.Err = util.ConvertAssign(&res.Value, str) return res } // ToBool ... // // Author : go_developer@163.com<白茶清欢> // // Date : 18:34 2023/5/4 func (str String) ToBool() BoolResult { var ( res BoolResult ) res.Err = util.ConvertAssign(&res.Value, str) return res } // ToObject ... // // Author : go_developer@163.com<白茶清欢> // // Date : 18:35 2023/5/4 func (str String) ToObject() ObjectResult { var ( res = ObjectResult{ Value: map[string]interface{}{}, Err: nil, } ) res.Err = util.JSON.UnmarshalWithNumber([]byte(str), &res.Value) return res } // ToStruct ... // // Author : go_developer@163.com<白茶清欢> // // Date : 18:38 2023/5/4 func (str String) ToStruct(receiver interface{}) error { if nil == receiver { return errors.New("receiver is nil") } return util.JSON.UnmarshalWithNumber([]byte(str), receiver) } // ToInt8Slice ... // // Author : go_developer@163.com<白茶清欢> // // Date : 18:55 2023/5/4 func (str String) ToInt8Slice(splitChar ...string) Int8SliceResult { result := Int8SliceResult{ Value: []int8{}, Err: nil, } isSplit := len(splitChar) > 0 if !isSplit { result.Err = util.JSON.UnmarshalWithNumber([]byte(str), &result.Value) return result } var ( res = make([]int8, 0) ) arr := strings.Split(string(str), splitChar[0]) for _, item := range arr { if itemVal := String(item).ToInt8(); nil != itemVal.Err { result.Err = itemVal.Err return result } else { res = append(res, itemVal.Value) } } result.Value = res return result } // ToInt16Slice ... // // Author : go_developer@163.com<白茶清欢> // // Date : 19:01 2023/5/4 func (str String) ToInt16Slice(splitChar ...string) Int16SliceResult { result := Int16SliceResult{ Value: []int16{}, Err: nil, } isSplit := len(splitChar) > 0 if !isSplit { result.Err = util.JSON.UnmarshalWithNumber([]byte(str), &result.Value) return result } res := make([]int16, 0) arr := strings.Split(string(str), splitChar[0]) for _, item := range arr { if itemVal := String(item).ToInt16(); nil != itemVal.Err { result.Err = itemVal.Err return result } else { res = append(res, itemVal.Value) } } result.Value = res return result } // ToInt32Slice ... // // Author : go_developer@163.com<白茶清欢> // // Date : 19:03 2023/5/4 func (str String) ToInt32Slice(splitChar ...string) Int32SliceResult { result := Int32SliceResult{ Value: []int32{}, Err: nil, } isSplit := len(splitChar) > 0 if !isSplit { result.Err = util.JSON.UnmarshalWithNumber([]byte(str), &result.Value) return result } res := make([]int32, 0) arr := strings.Split(string(str), splitChar[0]) for _, item := range arr { if itemVal := String(item).ToInt32(); nil != itemVal.Err { result.Err = itemVal.Err return result } else { res = append(res, itemVal.Value) } } result.Value = res return result } // ToInt64Slice ... // // Author : go_developer@163.com<白茶清欢> // // Date : 19:04 2023/5/4 func (str String) ToInt64Slice(splitChar ...string) Int64SliceResult { result := Int64SliceResult{ Value: []int64{}, Err: nil, } isSplit := len(splitChar) > 0 if !isSplit { result.Err = util.JSON.UnmarshalWithNumber([]byte(str), &result.Value) return result } res := make([]int64, 0) arr := strings.Split(string(str), splitChar[0]) for _, item := range arr { if itemVal := String(item).ToInt64(); nil != itemVal.Err { return result } else { res = append(res, itemVal.Value) } } result.Value = res return result } // ToIntSlice ... // // Author : go_developer@163.com<白茶清欢> // // Date : 19:04 2023/5/4 func (str String) ToIntSlice(splitChar ...string) IntSliceResult { result := IntSliceResult{ Value: []int{}, Err: nil, } isSplit := len(splitChar) > 0 if !isSplit { result.Err = util.JSON.UnmarshalWithNumber([]byte(str), &result.Value) return result } res := make([]int, 0) arr := strings.Split(string(str), splitChar[0]) for _, item := range arr { if itemVal := String(item).ToInt(); nil != itemVal.Err { result.Err = itemVal.Err return result } else { res = append(res, itemVal.Value) } } result.Value = res return result } // ToUint8Slice ... // // Author : go_developer@163.com<白茶清欢> // // Date : 10:50 2023/5/5 func (str String) ToUint8Slice(splitChar ...string) Uint8SliceResult { result := Uint8SliceResult{ Value: []uint8{}, Err: nil, } isSplit := len(splitChar) > 0 if !isSplit { result.Err = util.JSON.UnmarshalWithNumber([]byte(str), &result.Value) return result } res := make([]uint8, 0) arr := strings.Split(string(str), splitChar[0]) for _, item := range arr { if itemVal := String(item).ToUint8(); nil != itemVal.Err { result.Err = itemVal.Err return result } else { res = append(res, itemVal.Value) } } result.Value = res return result } // ToUint16Slice ... // // Author : go_developer@163.com<白茶清欢> // // Date : 10:52 2023/5/5 func (str String) ToUint16Slice(splitChar ...string) Uint16SliceResult { result := Uint16SliceResult{ Value: []uint16{}, Err: nil, } isSplit := len(splitChar) > 0 if !isSplit { result.Err = util.JSON.UnmarshalWithNumber([]byte(str), &result.Value) return result } res := make([]uint16, 0) arr := strings.Split(string(str), splitChar[0]) for _, item := range arr { if itemVal := String(item).ToUint16(); nil != itemVal.Err { result.Err = itemVal.Err return result } else { res = append(res, itemVal.Value) } } result.Value = res return result } // ToUint32Slice ... // // Author : go_developer@163.com<白茶清欢> // // Date : 10:53 2023/5/5 func (str String) ToUint32Slice(splitChar ...string) Uint32SliceResult { result := Uint32SliceResult{ Value: []uint32{}, Err: nil, } isSplit := len(splitChar) > 0 if !isSplit { result.Err = util.JSON.UnmarshalWithNumber([]byte(str), &result.Value) return result } res := make([]uint32, 0) arr := strings.Split(string(str), splitChar[0]) for _, item := range arr { if itemVal := String(item).ToUint32(); nil != itemVal.Err { result.Err = itemVal.Err return result } else { res = append(res, itemVal.Value) } } result.Value = res return result } // ToUint64Slice ... // // Author : go_developer@163.com<白茶清欢> // // Date : 10:54 2023/5/5 func (str String) ToUint64Slice(splitChar ...string) Uint64SliceResult { result := Uint64SliceResult{ Value: []uint64{}, Err: nil, } isSplit := len(splitChar) > 0 if !isSplit { result.Err = util.JSON.UnmarshalWithNumber([]byte(str), &result.Value) return result } res := make([]uint64, 0) arr := strings.Split(string(str), splitChar[0]) for _, item := range arr { if itemVal := String(item).ToUint64(); nil != itemVal.Err { result.Err = itemVal.Err return result } else { res = append(res, itemVal.Value) } } return result } // ToUintSlice ... // // Author : go_developer@163.com<白茶清欢> // // Date : 10:54 2023/5/5 func (str String) ToUintSlice(splitChar ...string) UintSliceResult { result := UintSliceResult{ Value: []uint{}, Err: nil, } isSplit := len(splitChar) > 0 if !isSplit { result.Err = util.JSON.UnmarshalWithNumber([]byte(str), &result.Value) return result } res := make([]uint, 0) arr := strings.Split(string(str), splitChar[0]) for _, item := range arr { if itemVal := String(item).ToUint(); nil != itemVal.Err { result.Err = itemVal.Err return result } else { res = append(res, itemVal.Value) } } result.Value = res return result } // ToBoolSlice ... // // Author : go_developer@163.com<白茶清欢> // // Date : 10:55 2023/5/5 func (str String) ToBoolSlice(splitChar ...string) BoolSliceResult { result := BoolSliceResult{ Value: []bool{}, Err: nil, } isSplit := len(splitChar) > 0 if !isSplit { result.Err = util.JSON.UnmarshalWithNumber([]byte(str), &result.Value) return result } res := make([]bool, 0) arr := strings.Split(string(str), splitChar[0]) for _, item := range arr { if itemVal := String(item).ToBool(); nil != itemVal.Err { result.Err = itemVal.Err return result } else { res = append(res, itemVal.Value) } } result.Value = res return result } // ToFloat32Slice ... // // Author : go_developer@163.com<白茶清欢> // // Date : 10:56 2023/5/5 func (str String) ToFloat32Slice(splitChar ...string) Float32SliceResult { result := Float32SliceResult{ Value: []float32{}, Err: nil, } isSplit := len(splitChar) > 0 if !isSplit { result.Err = util.JSON.UnmarshalWithNumber([]byte(str), &result.Value) return result } res := make([]float32, 0) arr := strings.Split(string(str), splitChar[0]) for _, item := range arr { if itemVal := String(item).ToFloat32(); nil != itemVal.Err { result.Err = itemVal.Err return result } else { res = append(res, itemVal.Value) } } return result } // ToFloat64Slice ... // // Author : go_developer@163.com<白茶清欢> // // Date : 10:56 2023/5/5 func (str String) ToFloat64Slice(splitChar ...string) Float64SliceResult { result := Float64SliceResult{ Value: []float64{}, Err: nil, } isSplit := len(splitChar) > 0 if !isSplit { result.Err = util.JSON.UnmarshalWithNumber([]byte(str), &result.Value) return result } res := make([]float64, 0) arr := strings.Split(string(str), splitChar[0]) for _, item := range arr { if itemVal := String(item).ToFloat64(); nil != itemVal.Err { result.Err = itemVal.Err return result } else { res = append(res, itemVal.Value) } } result.Value = res return result } // ToDoubleSlice ... // // Author : go_developer@163.com<白茶清欢> // // Date : 10:57 2023/5/5 func (str String) ToDoubleSlice(splitChar ...string) Float64SliceResult { return str.ToFloat64Slice(splitChar...) } // ToNumberSlice ... // // Author : go_developer@163.com<白茶清欢> // // Date : 10:57 2023/5/5 func (str String) ToNumberSlice(splitChar ...string) Float64SliceResult { return str.ToFloat64Slice(splitChar...) } // ToAnySlice ... // // Author : go_developer@163.com<白茶清欢> // // Date : 15:01 2023/5/5 func (str String) ToAnySlice() AnySliceResult { result := AnySliceResult{ Value: []interface{}{}, Err: nil, } result.Err = util.JSON.UnmarshalWithNumber([]byte(str), &result.Value) return result }