87 lines
1.8 KiB
Go
87 lines
1.8 KiB
Go
// Package op_number ...
|
|
//
|
|
// Description : op_number ...
|
|
//
|
|
// Author : go_developer@163.com<白茶清欢>
|
|
//
|
|
// Date : 2025-10-14 10:14
|
|
package op_number
|
|
|
|
import (
|
|
"git.zhangdeman.cn/zhangdeman/op_type"
|
|
"git.zhangdeman.cn/zhangdeman/wrapper/convert"
|
|
"git.zhangdeman.cn/zhangdeman/wrapper/define"
|
|
)
|
|
|
|
// ToNumber ...
|
|
func ToNumber[InputType op_type.BaseType, ResultType op_type.Number](in InputType) define.NumberResult[ResultType] {
|
|
var (
|
|
res ResultType
|
|
err error
|
|
)
|
|
if err = convert.ConvertAssign(&res, in); err != nil {
|
|
return define.NumberResult[ResultType]{
|
|
Err: err,
|
|
Value: res,
|
|
}
|
|
}
|
|
return define.NumberResult[ResultType]{
|
|
Err: nil,
|
|
Value: res,
|
|
}
|
|
}
|
|
|
|
// ToNumberPtr 数字指针
|
|
func ToNumberPtr[InputType op_type.BaseType, ResultType op_type.Number](in InputType) define.NumberPtrResult[ResultType] {
|
|
var (
|
|
res define.NumberResult[ResultType]
|
|
)
|
|
res = ToNumber[InputType, ResultType](in)
|
|
if nil != res.Err {
|
|
return define.NumberPtrResult[ResultType]{
|
|
Err: res.Err,
|
|
Value: nil,
|
|
}
|
|
}
|
|
return define.NumberPtrResult[ResultType]{
|
|
Err: nil,
|
|
Value: &res.Value,
|
|
}
|
|
}
|
|
|
|
// ToString 转换为字符串
|
|
func ToString[InputType op_type.Number](in InputType) define.BaseValueResult[string] {
|
|
var (
|
|
err error
|
|
res string
|
|
)
|
|
if err = convert.ConvertAssign(&res, in); err != nil {
|
|
return define.BaseValueResult[string]{
|
|
Value: res,
|
|
Err: err,
|
|
}
|
|
}
|
|
return define.BaseValueResult[string]{
|
|
Value: res,
|
|
Err: nil,
|
|
}
|
|
}
|
|
|
|
// ToStringPtr 字符串指针
|
|
func ToStringPtr[InputType op_type.Number](in InputType) define.BaseValuePtrResult[string] {
|
|
var (
|
|
res define.BaseValueResult[string]
|
|
)
|
|
res = ToString[InputType](in)
|
|
if nil != res.Err {
|
|
return define.BaseValuePtrResult[string]{
|
|
Err: res.Err,
|
|
Value: nil,
|
|
}
|
|
}
|
|
return define.BaseValuePtrResult[string]{
|
|
Err: nil,
|
|
Value: &res.Value,
|
|
}
|
|
}
|