forked from free-lancers/electricity_bill_calc_service
feat(user):通过完成用户检索功能,继续确定项目的基本代码结构。
This commit is contained in:
@@ -2,6 +2,7 @@ package tools
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"strings"
|
||||
|
||||
"github.com/mozillazg/go-pinyin"
|
||||
@@ -51,3 +52,37 @@ func PartitionSlice[T any](slice []T, chunkSize int) [][]T {
|
||||
}
|
||||
return divided
|
||||
}
|
||||
|
||||
// 判断指定指针是否为空,如果为空,则返回指定默认值(指针形式)
|
||||
func DefaultTo[T any](originValue *T, defaultValue T) T {
|
||||
if originValue == nil {
|
||||
return defaultValue
|
||||
}
|
||||
return *originValue
|
||||
}
|
||||
|
||||
// 判断指定的指针是否为空,如果为空,则返回指定的默认字符串,或者返回指针所指内容的字符串形式。
|
||||
func DefaultStrTo[T any](format string, originValue *T, defaultStr string) string {
|
||||
if originValue == nil {
|
||||
return defaultStr
|
||||
}
|
||||
return fmt.Sprintf(format, originValue)
|
||||
}
|
||||
|
||||
// 判断指定表达式的值,根据表达式的值返回指定的值。相当于其他语言中的三目运算符。
|
||||
func Cond[T any](expr bool, trueValue, falseValue T) T {
|
||||
if expr {
|
||||
return trueValue
|
||||
}
|
||||
return falseValue
|
||||
}
|
||||
|
||||
// 使用给定的函数对指定的值进行判断,根据表达式的值返回指定的值。
|
||||
func CondFn[T, R any](exprFn func(val T) bool, value T, trueValue, falseValue R) R {
|
||||
return Cond(exprFn(value), trueValue, falseValue)
|
||||
}
|
||||
|
||||
// 使用给定的函数对指定的值进行判断,如果表达式为真,则返回指定的值,否则返回另一个值。
|
||||
func CondOr[T any](exprFn func(val T) bool, value, elseValue T) T {
|
||||
return CondFn(exprFn, value, value, elseValue)
|
||||
}
|
||||
|
Reference in New Issue
Block a user