// 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[BaseType op_type.BaseType](str string, splitChar ...string) define.BaseValueSliceResult[BaseType] { var ( err error sliceValue []BaseType ) if len(splitChar) == 0 { // 序列化数组直接转换 if err = serialize.JSON.UnmarshalWithNumberForString(str, &sliceValue); nil != err { return define.BaseValueSliceResult[BaseType]{Value: []BaseType{}, Err: err} } return define.BaseValueSliceResult[BaseType]{Value: sliceValue, Err: nil} } // 按照分隔符转换 strArr := strings.Split(str, splitChar[0]) for _, v := range strArr { itemConvertRes := ToBaseTypeValue[BaseType](v) if nil != itemConvertRes.Err { return define.BaseValueSliceResult[BaseType]{Value: []BaseType{}, Err: itemConvertRes.Err} } sliceValue = append(sliceValue, itemConvertRes.Value) } return define.BaseValueSliceResult[BaseType]{Value: sliceValue, Err: nil} } // ToMapSlice map类型的列表 func ToMapSlice[Key comparable, Value any](str string) define.MapValueSliceResult[Key, Value] { res := define.MapValueSliceResult[Key, Value]{Value: []map[Key]Value{}, Err: nil} res.Err = serialize.JSON.UnmarshalWithNumberForString(str, &res.Value) return res } // ToStructSlice 结构体类型的列表 func ToStructSlice[Value any](str string) define.StructValueSliceResult[Value] { res := define.StructValueSliceResult[Value]{Value: []Value{}, Err: nil} res.Err = serialize.JSON.UnmarshalWithNumberForString(str, &res.Value) return res }