44 lines
1.3 KiB
Go
44 lines
1.3 KiB
Go
// Package op_string ...
|
|
//
|
|
// Description : op_string ...
|
|
//
|
|
// Author : go_developer@163.com<白茶清欢>
|
|
//
|
|
// Date : 2025-10-13 14:21
|
|
package op_string
|
|
|
|
import (
|
|
"strings"
|
|
|
|
"git.zhangdeman.cn/zhangdeman/op_type"
|
|
"git.zhangdeman.cn/zhangdeman/serialize"
|
|
"git.zhangdeman.cn/zhangdeman/wrapper/define"
|
|
)
|
|
|
|
// ToBaseTypeSlice 基础数据类型的列表
|
|
// splitChar 没有用字符串表示的原因: 存在场景, 使用空字符串风格字符串, 空字符串是有意义的
|
|
func ToBaseTypeSlice[BaseTpe op_type.BaseType](str string, splitChar ...string) define.BaseValueSliceResult[BaseTpe] {
|
|
var (
|
|
err error
|
|
sliceValue []BaseTpe
|
|
)
|
|
|
|
if len(splitChar) == 0 {
|
|
// 序列化数组直接转换
|
|
if err = serialize.JSON.UnmarshalWithNumberForString(str, &sliceValue); nil != err {
|
|
return define.BaseValueSliceResult[BaseTpe]{Value: []BaseTpe{}, Err: err}
|
|
}
|
|
return define.BaseValueSliceResult[BaseTpe]{Value: sliceValue, Err: nil}
|
|
}
|
|
// 按照分隔符转换
|
|
strArr := strings.Split(str, splitChar[0])
|
|
for _, v := range strArr {
|
|
itemConvertRes := ToBaseValue[BaseTpe](v)
|
|
if nil != itemConvertRes.Err {
|
|
return define.BaseValueSliceResult[BaseTpe]{Value: []BaseTpe{}, Err: err}
|
|
}
|
|
sliceValue = append(sliceValue, itemConvertRes.Value)
|
|
}
|
|
return define.BaseValueSliceResult[BaseTpe]{Value: sliceValue, Err: nil}
|
|
}
|