wrapper/string.go

969 lines
18 KiB
Go
Raw Normal View History

2023-05-05 13:43:33 +08:00
// Package wrapper ...
//
// Description : wrapper ...
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 2023-05-05 11:59
package wrapper
import (
2023-05-16 12:12:18 +08:00
"crypto/md5"
2023-05-05 13:43:33 +08:00
"errors"
"git.zhangdeman.cn/zhangdeman/util"
2023-05-16 12:12:18 +08:00
"io"
2023-05-05 13:43:33 +08:00
"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
2023-05-08 18:29:48 +08:00
func (str String) ToFloat32() Float32Result {
2023-05-05 13:43:33 +08:00
var (
2023-05-08 18:29:48 +08:00
res Float32Result
2023-05-05 13:43:33 +08:00
)
2023-05-08 18:29:48 +08:00
res.Err = util.ConvertAssign(&res.Value, str)
return res
2023-05-05 13:43:33 +08:00
}
2023-05-16 12:08:22 +08:00
// ToFloat32Ptr ...
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 11:58 2023/5/16
func (str String) ToFloat32Ptr() Float32PtrResult {
res := str.ToFloat32()
if nil != res.Err {
return Float32PtrResult{
Value: nil,
Err: res.Err,
}
}
return Float32PtrResult{
Value: &res.Value,
Err: nil,
}
}
2023-05-05 13:43:33 +08:00
// ToFloat64 ...
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 18:26 2023/5/4
2023-05-08 18:29:48 +08:00
func (str String) ToFloat64() Float64Result {
2023-05-05 13:43:33 +08:00
var (
2023-05-08 18:29:48 +08:00
res Float64Result
2023-05-05 13:43:33 +08:00
)
2023-05-08 18:29:48 +08:00
res.Err = util.ConvertAssign(&res.Value, str)
return res
2023-05-05 13:43:33 +08:00
}
2023-05-16 12:08:22 +08:00
// ToFloat64Ptr ...
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 11:59 2023/5/16
func (str String) ToFloat64Ptr() Float64PtrResult {
res := str.ToFloat64()
if nil != res.Err {
return Float64PtrResult{
Value: nil,
Err: res.Err,
}
}
return Float64PtrResult{
Value: &res.Value,
Err: nil,
}
}
2023-05-05 13:43:33 +08:00
// ToDouble 转double
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 18:33 2023/5/4
2023-05-08 18:29:48 +08:00
func (str String) ToDouble() Float64Result {
2023-05-05 13:43:33 +08:00
return str.ToFloat64()
}
2023-05-16 12:08:22 +08:00
// ToDoublePtr ...
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 11:59 2023/5/16
func (str String) ToDoublePtr() Float64PtrResult {
return str.ToFloat64Ptr()
}
2023-05-05 13:43:33 +08:00
// ToNumber 转数字, 使用最高精度的float64
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 18:33 2023/5/4
2023-05-08 18:29:48 +08:00
func (str String) ToNumber() Float64Result {
2023-05-05 13:43:33 +08:00
return str.ToFloat64()
}
2023-05-16 12:08:22 +08:00
// ToNumberPtr ...
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 12:00 2023/5/16
func (str String) ToNumberPtr() Float64PtrResult {
return str.ToFloat64Ptr()
}
2023-05-05 13:43:33 +08:00
// ToInt8 ...
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 18:29 2023/5/4
2023-05-08 18:29:48 +08:00
func (str String) ToInt8() Int8Result {
2023-05-05 13:43:33 +08:00
var (
2023-05-08 18:29:48 +08:00
res Int8Result
2023-05-05 13:43:33 +08:00
)
2023-05-08 18:29:48 +08:00
res.Err = util.ConvertAssign(&res.Value, str)
return res
2023-05-05 13:43:33 +08:00
}
2023-05-16 12:08:22 +08:00
// ToInt8Ptr ...
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 12:01 2023/5/16
func (str String) ToInt8Ptr() Int8PtrResult {
res := str.ToInt8()
if nil != res.Err {
return Int8PtrResult{
Value: nil,
Err: res.Err,
}
}
return Int8PtrResult{
Value: &res.Value,
Err: nil,
}
}
2023-05-05 13:43:33 +08:00
// ToInt16 ...
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 18:29 2023/5/4
2023-05-08 18:29:48 +08:00
func (str String) ToInt16() Int16Result {
2023-05-05 13:43:33 +08:00
var (
2023-05-08 18:29:48 +08:00
res Int16Result
2023-05-05 13:43:33 +08:00
)
2023-05-08 18:29:48 +08:00
res.Err = util.ConvertAssign(&res.Value, str)
return res
2023-05-05 13:43:33 +08:00
}
2023-05-16 12:08:22 +08:00
// ToInt16Ptr ...
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 12:02 2023/5/16
func (str String) ToInt16Ptr() Int16PtrResult {
res := str.ToInt16()
if nil != res.Err {
return Int16PtrResult{
Value: nil,
Err: res.Err,
}
}
return Int16PtrResult{
Value: &res.Value,
Err: nil,
}
}
2023-05-05 13:43:33 +08:00
// ToInt32 ...
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 18:29 2023/5/4
2023-05-08 18:29:48 +08:00
func (str String) ToInt32() Int32Result {
2023-05-05 13:43:33 +08:00
var (
2023-05-08 18:29:48 +08:00
res Int32Result
2023-05-05 13:43:33 +08:00
)
2023-05-08 18:29:48 +08:00
res.Err = util.ConvertAssign(&res.Value, str)
return res
2023-05-05 13:43:33 +08:00
}
2023-05-16 12:08:22 +08:00
// ToInt32Ptr ...
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 12:03 2023/5/16
func (str String) ToInt32Ptr() Int32PtrResult {
res := str.ToInt32()
if nil != res.Err {
return Int32PtrResult{
Value: nil,
Err: res.Err,
}
}
return Int32PtrResult{
Value: &res.Value,
Err: nil,
}
}
2023-05-05 13:43:33 +08:00
// ToInt64 ...
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 18:29 2023/5/4
2023-05-08 18:29:48 +08:00
func (str String) ToInt64() Int64Result {
2023-05-05 13:43:33 +08:00
var (
2023-05-08 18:29:48 +08:00
res Int64Result
2023-05-05 13:43:33 +08:00
)
2023-05-08 18:29:48 +08:00
res.Err = util.ConvertAssign(&res.Value, str)
return res
2023-05-05 13:43:33 +08:00
}
2023-05-16 12:08:22 +08:00
// ToInt64Ptr ...
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 12:03 2023/5/16
func (str String) ToInt64Ptr() Int64PtrResult {
res := str.ToInt64()
if nil != res.Err {
return Int64PtrResult{
Value: nil,
Err: res.Err,
}
}
return Int64PtrResult{
Value: &res.Value,
Err: nil,
}
}
2023-05-05 13:43:33 +08:00
// ToInt ...
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 10:47 2023/5/5
2023-05-08 18:29:48 +08:00
func (str String) ToInt() IntResult {
2023-05-05 13:43:33 +08:00
var (
2023-05-08 18:29:48 +08:00
res IntResult
2023-05-05 13:43:33 +08:00
)
2023-05-08 18:29:48 +08:00
res.Err = util.ConvertAssign(&res.Value, str)
return res
2023-05-05 13:43:33 +08:00
}
2023-05-16 12:08:22 +08:00
// ToIntPtr ...
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 12:04 2023/5/16
func (str String) ToIntPtr() IntPtrResult {
res := str.ToInt()
if nil != res.Err {
return IntPtrResult{
Value: nil,
Err: res.Err,
}
}
return IntPtrResult{
Value: &res.Value,
Err: nil,
}
}
2023-05-05 13:43:33 +08:00
// ToUint8 ...
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 18:30 2023/5/4
2023-05-08 18:29:48 +08:00
func (str String) ToUint8() Uint8Result {
2023-05-05 13:43:33 +08:00
var (
2023-05-08 18:29:48 +08:00
res Uint8Result
2023-05-05 13:43:33 +08:00
)
2023-05-08 18:29:48 +08:00
res.Err = util.ConvertAssign(&res.Value, str)
return res
2023-05-05 13:43:33 +08:00
}
2023-05-16 12:08:22 +08:00
// ToUint8Ptr ...
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 12:05 2023/5/16
func (str String) ToUint8Ptr() Uint8PtrResult {
res := str.ToUint8()
if nil != res.Err {
return Uint8PtrResult{
Value: nil,
Err: res.Err,
}
}
return Uint8PtrResult{
Value: &res.Value,
Err: nil,
}
}
2023-05-05 13:43:33 +08:00
// ToUint16 ...
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 18:29 2023/5/4
2023-05-08 18:29:48 +08:00
func (str String) ToUint16() Uint16Result {
2023-05-05 13:43:33 +08:00
var (
2023-05-08 18:29:48 +08:00
res Uint16Result
2023-05-05 13:43:33 +08:00
)
2023-05-08 18:29:48 +08:00
res.Err = util.ConvertAssign(&res.Value, str)
return res
2023-05-05 13:43:33 +08:00
}
2023-05-16 12:08:22 +08:00
// ToUint16Ptr ...
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 12:05 2023/5/16
func (str String) ToUint16Ptr() Uint16PtrResult {
res := str.ToUint16()
if nil != res.Err {
return Uint16PtrResult{
Value: nil,
Err: res.Err,
}
}
return Uint16PtrResult{
Value: &res.Value,
Err: nil,
}
}
2023-05-05 13:43:33 +08:00
// ToUint32 ...
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 18:29 2023/5/4
2023-05-08 18:29:48 +08:00
func (str String) ToUint32() Uint32Result {
2023-05-05 13:43:33 +08:00
var (
2023-05-08 18:29:48 +08:00
res Uint32Result
2023-05-05 13:43:33 +08:00
)
2023-05-08 18:29:48 +08:00
res.Err = util.ConvertAssign(&res.Value, str)
return res
2023-05-05 13:43:33 +08:00
}
2023-05-16 12:08:22 +08:00
// ToUint32Ptr ...
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 12:05 2023/5/16
func (str String) ToUint32Ptr() Uint32PtrResult {
res := str.ToUint32()
if nil != res.Err {
return Uint32PtrResult{
Value: nil,
Err: res.Err,
}
}
return Uint32PtrResult{
Value: &res.Value,
Err: nil,
}
}
2023-05-05 13:43:33 +08:00
// ToUint64 ...
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 18:29 2023/5/4
2023-05-08 18:29:48 +08:00
func (str String) ToUint64() Uint64Result {
2023-05-05 13:43:33 +08:00
var (
2023-05-08 18:29:48 +08:00
res Uint64Result
2023-05-05 13:43:33 +08:00
)
2023-05-08 18:29:48 +08:00
res.Err = util.ConvertAssign(&res.Value, str)
return res
2023-05-05 13:43:33 +08:00
}
2023-05-16 12:08:22 +08:00
// ToUint64Ptr ...
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 12:06 2023/5/16
func (str String) ToUint64Ptr() Uint64PtrResult {
res := str.ToUint64()
if nil != res.Err {
return Uint64PtrResult{
Value: nil,
Err: res.Err,
}
}
return Uint64PtrResult{
Value: &res.Value,
Err: nil,
}
}
2023-05-05 13:43:33 +08:00
// ToUint ...
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 18:29 2023/5/4
2023-05-08 18:29:48 +08:00
func (str String) ToUint() UintResult {
2023-05-05 13:43:33 +08:00
var (
2023-05-08 18:29:48 +08:00
res UintResult
2023-05-05 13:43:33 +08:00
)
2023-05-08 18:29:48 +08:00
res.Err = util.ConvertAssign(&res.Value, str)
return res
2023-05-05 13:43:33 +08:00
}
2023-05-16 12:08:22 +08:00
// ToUintPtr ...
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 12:06 2023/5/16
func (str String) ToUintPtr() UintPtrResult {
res := str.ToUint()
if nil != res.Err {
return UintPtrResult{
Value: nil,
Err: res.Err,
}
}
return UintPtrResult{
Value: &res.Value,
Err: nil,
}
}
2023-05-05 13:43:33 +08:00
// ToBool ...
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 18:34 2023/5/4
2023-05-08 18:29:48 +08:00
func (str String) ToBool() BoolResult {
2023-05-05 13:43:33 +08:00
var (
2023-05-08 18:29:48 +08:00
res BoolResult
2023-05-05 13:43:33 +08:00
)
2023-05-08 18:29:48 +08:00
res.Err = util.ConvertAssign(&res.Value, str)
return res
2023-05-05 13:43:33 +08:00
}
2023-05-16 12:08:22 +08:00
// ToBoolPtr ...
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 12:07 2023/5/16
func (str String) ToBoolPtr() BoolPtrResult {
res := str.ToBool()
if nil != res.Err {
return BoolPtrResult{
Value: nil,
Err: res.Err,
}
}
return BoolPtrResult{
Value: &res.Value,
Err: nil,
}
}
2023-07-03 15:59:37 +08:00
// ToStringPtr 转换成字符串指针
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 15:57 2023/7/3
func (str String) ToStringPtr() StringPtrResult {
val := str.Value()
return StringPtrResult{
Value: &val,
Err: nil,
}
}
2023-05-05 13:43:33 +08:00
// ToObject ...
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 18:35 2023/5/4
2023-05-08 18:29:48 +08:00
func (str String) ToObject() ObjectResult {
2023-05-05 13:43:33 +08:00
var (
2023-05-08 18:29:48 +08:00
res = ObjectResult{
Value: map[string]interface{}{},
Err: nil,
}
2023-05-05 13:43:33 +08:00
)
2023-05-08 18:29:48 +08:00
res.Err = util.JSON.UnmarshalWithNumber([]byte(str), &res.Value)
return res
2023-05-05 13:43:33 +08:00
}
// 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
2023-05-08 18:29:48 +08:00
func (str String) ToInt8Slice(splitChar ...string) Int8SliceResult {
result := Int8SliceResult{
Value: []int8{},
Err: nil,
}
2023-05-05 13:43:33 +08:00
isSplit := len(splitChar) > 0
if !isSplit {
2023-05-08 18:29:48 +08:00
result.Err = util.JSON.UnmarshalWithNumber([]byte(str), &result.Value)
return result
2023-05-05 13:43:33 +08:00
}
2023-05-08 18:29:48 +08:00
var (
res = make([]int8, 0)
)
2023-05-05 13:43:33 +08:00
arr := strings.Split(string(str), splitChar[0])
for _, item := range arr {
2023-05-08 18:29:48 +08:00
if itemVal := String(item).ToInt8(); nil != itemVal.Err {
result.Err = itemVal.Err
return result
2023-05-05 13:43:33 +08:00
} else {
2023-05-08 18:29:48 +08:00
res = append(res, itemVal.Value)
2023-05-05 13:43:33 +08:00
}
}
2023-05-08 18:29:48 +08:00
result.Value = res
return result
2023-05-05 13:43:33 +08:00
}
// ToInt16Slice ...
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 19:01 2023/5/4
2023-05-08 18:29:48 +08:00
func (str String) ToInt16Slice(splitChar ...string) Int16SliceResult {
result := Int16SliceResult{
Value: []int16{},
Err: nil,
}
2023-05-05 13:43:33 +08:00
isSplit := len(splitChar) > 0
if !isSplit {
2023-05-08 18:29:48 +08:00
result.Err = util.JSON.UnmarshalWithNumber([]byte(str), &result.Value)
return result
2023-05-05 13:43:33 +08:00
}
2023-05-08 18:29:48 +08:00
res := make([]int16, 0)
2023-05-05 13:43:33 +08:00
arr := strings.Split(string(str), splitChar[0])
for _, item := range arr {
2023-05-08 18:29:48 +08:00
if itemVal := String(item).ToInt16(); nil != itemVal.Err {
result.Err = itemVal.Err
return result
2023-05-05 13:43:33 +08:00
} else {
2023-05-08 18:29:48 +08:00
res = append(res, itemVal.Value)
2023-05-05 13:43:33 +08:00
}
}
2023-05-08 18:29:48 +08:00
result.Value = res
return result
2023-05-05 13:43:33 +08:00
}
// ToInt32Slice ...
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 19:03 2023/5/4
2023-05-08 18:29:48 +08:00
func (str String) ToInt32Slice(splitChar ...string) Int32SliceResult {
result := Int32SliceResult{
Value: []int32{},
Err: nil,
}
2023-05-05 13:43:33 +08:00
isSplit := len(splitChar) > 0
if !isSplit {
2023-05-08 18:29:48 +08:00
result.Err = util.JSON.UnmarshalWithNumber([]byte(str), &result.Value)
return result
2023-05-05 13:43:33 +08:00
}
2023-05-08 18:29:48 +08:00
res := make([]int32, 0)
2023-05-05 13:43:33 +08:00
arr := strings.Split(string(str), splitChar[0])
for _, item := range arr {
2023-05-08 18:29:48 +08:00
if itemVal := String(item).ToInt32(); nil != itemVal.Err {
result.Err = itemVal.Err
return result
2023-05-05 13:43:33 +08:00
} else {
2023-05-08 18:29:48 +08:00
res = append(res, itemVal.Value)
2023-05-05 13:43:33 +08:00
}
}
2023-05-08 18:29:48 +08:00
result.Value = res
return result
2023-05-05 13:43:33 +08:00
}
// ToInt64Slice ...
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 19:04 2023/5/4
2023-05-08 18:29:48 +08:00
func (str String) ToInt64Slice(splitChar ...string) Int64SliceResult {
result := Int64SliceResult{
Value: []int64{},
Err: nil,
}
2023-05-05 13:43:33 +08:00
isSplit := len(splitChar) > 0
if !isSplit {
2023-05-08 18:29:48 +08:00
result.Err = util.JSON.UnmarshalWithNumber([]byte(str), &result.Value)
return result
2023-05-05 13:43:33 +08:00
}
2023-05-08 18:29:48 +08:00
res := make([]int64, 0)
2023-05-05 13:43:33 +08:00
arr := strings.Split(string(str), splitChar[0])
for _, item := range arr {
2023-05-08 18:29:48 +08:00
if itemVal := String(item).ToInt64(); nil != itemVal.Err {
return result
2023-05-05 13:43:33 +08:00
} else {
2023-05-08 18:29:48 +08:00
res = append(res, itemVal.Value)
2023-05-05 13:43:33 +08:00
}
}
2023-05-08 18:29:48 +08:00
result.Value = res
return result
2023-05-05 13:43:33 +08:00
}
// ToIntSlice ...
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 19:04 2023/5/4
2023-05-08 18:29:48 +08:00
func (str String) ToIntSlice(splitChar ...string) IntSliceResult {
result := IntSliceResult{
Value: []int{},
Err: nil,
}
2023-05-05 13:43:33 +08:00
isSplit := len(splitChar) > 0
if !isSplit {
2023-05-08 18:29:48 +08:00
result.Err = util.JSON.UnmarshalWithNumber([]byte(str), &result.Value)
return result
2023-05-05 13:43:33 +08:00
}
2023-05-08 18:29:48 +08:00
res := make([]int, 0)
2023-05-05 13:43:33 +08:00
arr := strings.Split(string(str), splitChar[0])
for _, item := range arr {
2023-05-08 18:29:48 +08:00
if itemVal := String(item).ToInt(); nil != itemVal.Err {
result.Err = itemVal.Err
return result
2023-05-05 13:43:33 +08:00
} else {
2023-05-08 18:29:48 +08:00
res = append(res, itemVal.Value)
2023-05-05 13:43:33 +08:00
}
}
2023-05-08 18:29:48 +08:00
result.Value = res
return result
2023-05-05 13:43:33 +08:00
}
// ToUint8Slice ...
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 10:50 2023/5/5
2023-05-08 18:29:48 +08:00
func (str String) ToUint8Slice(splitChar ...string) Uint8SliceResult {
result := Uint8SliceResult{
Value: []uint8{},
Err: nil,
}
2023-05-05 13:43:33 +08:00
isSplit := len(splitChar) > 0
if !isSplit {
2023-05-08 18:29:48 +08:00
result.Err = util.JSON.UnmarshalWithNumber([]byte(str), &result.Value)
return result
2023-05-05 13:43:33 +08:00
}
2023-05-08 18:29:48 +08:00
res := make([]uint8, 0)
2023-05-05 13:43:33 +08:00
arr := strings.Split(string(str), splitChar[0])
for _, item := range arr {
2023-05-08 18:29:48 +08:00
if itemVal := String(item).ToUint8(); nil != itemVal.Err {
result.Err = itemVal.Err
return result
2023-05-05 13:43:33 +08:00
} else {
2023-05-08 18:29:48 +08:00
res = append(res, itemVal.Value)
2023-05-05 13:43:33 +08:00
}
}
2023-05-08 18:29:48 +08:00
result.Value = res
return result
2023-05-05 13:43:33 +08:00
}
// ToUint16Slice ...
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 10:52 2023/5/5
2023-05-08 18:29:48 +08:00
func (str String) ToUint16Slice(splitChar ...string) Uint16SliceResult {
result := Uint16SliceResult{
Value: []uint16{},
Err: nil,
}
2023-05-05 13:43:33 +08:00
isSplit := len(splitChar) > 0
if !isSplit {
2023-05-08 18:29:48 +08:00
result.Err = util.JSON.UnmarshalWithNumber([]byte(str), &result.Value)
return result
2023-05-05 13:43:33 +08:00
}
2023-05-08 18:29:48 +08:00
res := make([]uint16, 0)
2023-05-05 13:43:33 +08:00
arr := strings.Split(string(str), splitChar[0])
for _, item := range arr {
2023-05-08 18:29:48 +08:00
if itemVal := String(item).ToUint16(); nil != itemVal.Err {
result.Err = itemVal.Err
return result
2023-05-05 13:43:33 +08:00
} else {
2023-05-08 18:29:48 +08:00
res = append(res, itemVal.Value)
2023-05-05 13:43:33 +08:00
}
}
2023-05-08 18:29:48 +08:00
result.Value = res
return result
2023-05-05 13:43:33 +08:00
}
// ToUint32Slice ...
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 10:53 2023/5/5
2023-05-08 18:29:48 +08:00
func (str String) ToUint32Slice(splitChar ...string) Uint32SliceResult {
result := Uint32SliceResult{
Value: []uint32{},
Err: nil,
}
2023-05-05 13:43:33 +08:00
isSplit := len(splitChar) > 0
if !isSplit {
2023-05-08 18:29:48 +08:00
result.Err = util.JSON.UnmarshalWithNumber([]byte(str), &result.Value)
return result
2023-05-05 13:43:33 +08:00
}
2023-05-08 18:29:48 +08:00
res := make([]uint32, 0)
2023-05-05 13:43:33 +08:00
arr := strings.Split(string(str), splitChar[0])
for _, item := range arr {
2023-05-08 18:29:48 +08:00
if itemVal := String(item).ToUint32(); nil != itemVal.Err {
result.Err = itemVal.Err
return result
2023-05-05 13:43:33 +08:00
} else {
2023-05-08 18:29:48 +08:00
res = append(res, itemVal.Value)
2023-05-05 13:43:33 +08:00
}
}
2023-05-08 18:29:48 +08:00
result.Value = res
return result
2023-05-05 13:43:33 +08:00
}
// ToUint64Slice ...
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 10:54 2023/5/5
2023-05-08 18:29:48 +08:00
func (str String) ToUint64Slice(splitChar ...string) Uint64SliceResult {
result := Uint64SliceResult{
Value: []uint64{},
Err: nil,
}
2023-05-05 13:43:33 +08:00
isSplit := len(splitChar) > 0
if !isSplit {
2023-05-08 18:29:48 +08:00
result.Err = util.JSON.UnmarshalWithNumber([]byte(str), &result.Value)
return result
2023-05-05 13:43:33 +08:00
}
2023-05-08 18:29:48 +08:00
res := make([]uint64, 0)
2023-05-05 13:43:33 +08:00
arr := strings.Split(string(str), splitChar[0])
for _, item := range arr {
2023-05-08 18:29:48 +08:00
if itemVal := String(item).ToUint64(); nil != itemVal.Err {
result.Err = itemVal.Err
return result
2023-05-05 13:43:33 +08:00
} else {
2023-05-08 18:29:48 +08:00
res = append(res, itemVal.Value)
2023-05-05 13:43:33 +08:00
}
}
2023-05-08 18:29:48 +08:00
return result
2023-05-05 13:43:33 +08:00
}
// ToUintSlice ...
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 10:54 2023/5/5
2023-05-08 18:29:48 +08:00
func (str String) ToUintSlice(splitChar ...string) UintSliceResult {
result := UintSliceResult{
Value: []uint{},
Err: nil,
}
2023-05-05 13:43:33 +08:00
isSplit := len(splitChar) > 0
if !isSplit {
2023-05-08 18:29:48 +08:00
result.Err = util.JSON.UnmarshalWithNumber([]byte(str), &result.Value)
return result
2023-05-05 13:43:33 +08:00
}
2023-05-08 18:29:48 +08:00
res := make([]uint, 0)
2023-05-05 13:43:33 +08:00
arr := strings.Split(string(str), splitChar[0])
for _, item := range arr {
2023-05-08 18:29:48 +08:00
if itemVal := String(item).ToUint(); nil != itemVal.Err {
result.Err = itemVal.Err
return result
2023-05-05 13:43:33 +08:00
} else {
2023-05-08 18:29:48 +08:00
res = append(res, itemVal.Value)
2023-05-05 13:43:33 +08:00
}
}
2023-05-08 18:29:48 +08:00
result.Value = res
return result
2023-05-05 13:43:33 +08:00
}
// ToBoolSlice ...
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 10:55 2023/5/5
2023-05-08 18:29:48 +08:00
func (str String) ToBoolSlice(splitChar ...string) BoolSliceResult {
result := BoolSliceResult{
Value: []bool{},
Err: nil,
}
2023-05-05 13:43:33 +08:00
isSplit := len(splitChar) > 0
if !isSplit {
2023-05-08 18:29:48 +08:00
result.Err = util.JSON.UnmarshalWithNumber([]byte(str), &result.Value)
return result
2023-05-05 13:43:33 +08:00
}
2023-05-08 18:29:48 +08:00
res := make([]bool, 0)
2023-05-05 13:43:33 +08:00
arr := strings.Split(string(str), splitChar[0])
for _, item := range arr {
2023-05-08 18:29:48 +08:00
if itemVal := String(item).ToBool(); nil != itemVal.Err {
result.Err = itemVal.Err
return result
2023-05-05 13:43:33 +08:00
} else {
2023-05-08 18:29:48 +08:00
res = append(res, itemVal.Value)
2023-05-05 13:43:33 +08:00
}
}
2023-05-08 18:29:48 +08:00
result.Value = res
return result
2023-05-05 13:43:33 +08:00
}
// ToFloat32Slice ...
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 10:56 2023/5/5
2023-05-08 18:29:48 +08:00
func (str String) ToFloat32Slice(splitChar ...string) Float32SliceResult {
result := Float32SliceResult{
Value: []float32{},
Err: nil,
}
2023-05-05 13:43:33 +08:00
isSplit := len(splitChar) > 0
if !isSplit {
2023-05-08 18:29:48 +08:00
result.Err = util.JSON.UnmarshalWithNumber([]byte(str), &result.Value)
return result
2023-05-05 13:43:33 +08:00
}
2023-05-08 18:29:48 +08:00
res := make([]float32, 0)
2023-05-05 13:43:33 +08:00
arr := strings.Split(string(str), splitChar[0])
for _, item := range arr {
2023-05-08 18:29:48 +08:00
if itemVal := String(item).ToFloat32(); nil != itemVal.Err {
result.Err = itemVal.Err
return result
2023-05-05 13:43:33 +08:00
} else {
2023-05-08 18:29:48 +08:00
res = append(res, itemVal.Value)
2023-05-05 13:43:33 +08:00
}
}
2023-05-08 18:29:48 +08:00
return result
2023-05-05 13:43:33 +08:00
}
// ToFloat64Slice ...
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 10:56 2023/5/5
2023-05-08 18:29:48 +08:00
func (str String) ToFloat64Slice(splitChar ...string) Float64SliceResult {
result := Float64SliceResult{
Value: []float64{},
Err: nil,
}
2023-05-05 13:43:33 +08:00
isSplit := len(splitChar) > 0
if !isSplit {
2023-05-08 18:29:48 +08:00
result.Err = util.JSON.UnmarshalWithNumber([]byte(str), &result.Value)
return result
2023-05-05 13:43:33 +08:00
}
2023-05-08 18:29:48 +08:00
res := make([]float64, 0)
2023-05-05 13:43:33 +08:00
arr := strings.Split(string(str), splitChar[0])
for _, item := range arr {
2023-05-08 18:29:48 +08:00
if itemVal := String(item).ToFloat64(); nil != itemVal.Err {
result.Err = itemVal.Err
return result
2023-05-05 13:43:33 +08:00
} else {
2023-05-08 18:29:48 +08:00
res = append(res, itemVal.Value)
2023-05-05 13:43:33 +08:00
}
}
2023-05-08 18:29:48 +08:00
result.Value = res
return result
2023-05-05 13:43:33 +08:00
}
// ToDoubleSlice ...
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 10:57 2023/5/5
2023-05-08 18:29:48 +08:00
func (str String) ToDoubleSlice(splitChar ...string) Float64SliceResult {
2023-05-05 13:43:33 +08:00
return str.ToFloat64Slice(splitChar...)
}
// ToNumberSlice ...
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 10:57 2023/5/5
2023-05-08 18:29:48 +08:00
func (str String) ToNumberSlice(splitChar ...string) Float64SliceResult {
2023-05-05 13:43:33 +08:00
return str.ToFloat64Slice(splitChar...)
}
2023-05-05 15:02:45 +08:00
// ToAnySlice ...
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 15:01 2023/5/5
2023-05-08 18:29:48 +08:00
func (str String) ToAnySlice() AnySliceResult {
result := AnySliceResult{
Value: []interface{}{},
Err: nil,
2023-05-05 15:02:45 +08:00
}
2023-05-08 18:29:48 +08:00
result.Err = util.JSON.UnmarshalWithNumber([]byte(str), &result.Value)
return result
2023-05-05 15:02:45 +08:00
}
2023-05-16 12:12:18 +08:00
// Md5 计算Md5值
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 12:08 2023/5/16
func (str String) Md5() StringResult {
h := md5.New()
_, err := io.WriteString(h, str.Value())
if nil != err {
return StringResult{
Value: "",
Err: err,
}
}
return StringResult{
Value: string(h.Sum(nil)),
Err: nil,
}
}
// Value ...
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 12:11 2023/5/16
func (str String) Value() string {
return string(str)
}