49 lines
1.1 KiB
Go
49 lines
1.1 KiB
Go
// Package op_string ...
|
|
//
|
|
// Description : op_string ...
|
|
//
|
|
// Author : go_developer@163.com<白茶清欢>
|
|
//
|
|
// Date : 2025-10-13 12:18
|
|
package op_string
|
|
|
|
import (
|
|
"git.zhangdeman.cn/zhangdeman/serialize"
|
|
"git.zhangdeman.cn/zhangdeman/wrapper/define"
|
|
)
|
|
|
|
// ToMap 转换为map, 数据类型可比较, 即可作为 map key, 内置 any 类型无法作为key
|
|
func ToMap[Key comparable, Value any](str string) define.MapValueResult[Key, Value] {
|
|
var (
|
|
err error
|
|
res map[Key]Value
|
|
)
|
|
if err = serialize.JSON.UnmarshalWithNumberForString(str, &res); err != nil {
|
|
return define.MapValueResult[Key, Value]{
|
|
Value: nil,
|
|
Err: err,
|
|
}
|
|
}
|
|
return define.MapValueResult[Key, Value]{
|
|
Value: res,
|
|
Err: nil,
|
|
}
|
|
}
|
|
|
|
// ToStruct 转换为结构体
|
|
func ToStruct[Value any](str string, receiver Value) define.StructValueResult[Value] {
|
|
var (
|
|
err error
|
|
)
|
|
if err = serialize.JSON.UnmarshalWithNumberForString(str, receiver); err != nil {
|
|
return define.StructValueResult[Value]{
|
|
Value: receiver,
|
|
Err: err,
|
|
}
|
|
}
|
|
return define.StructValueResult[Value]{
|
|
Value: receiver,
|
|
Err: nil,
|
|
}
|
|
}
|