package
1.7.4
Repository: https://github.com/mzzsfy/go-util.git
Documentation: pkg.go.dev

# README

一些简单的工具类

简便方法

StringToBytes(str string) []byte
BytesToString(b []byte) string
Md5(str string) string
Base64(str string) string

// PaddingOrTruncate 填充空格或截取到指定长度
// leftOrRight 填充或者截取方向,与对齐方向逻辑相反,默认false,左对齐
PaddingOrTruncate(str string, toLen int, leftOrRight ...bool) string

// TruncateAndAppendSuffix 截断字符串到指定长度,如果截断了,则添加后缀
TruncateAndAppendSuffix(str string, toLen int, suffix string, leftOrRight ...bool) string

// Truncate 截断字符串,保证长度不超过指定长度
Truncate(str string, toLen int, leftOrRight ...bool) string

// Sub 截取字符串
// before 保留flag之前的字符串还是之后
// last 从前开始查找还是从后开始查找
Sub(src, flag string, before, last bool) string

// StringAllIsNumber 字符串是否全是数字
StringAllIsNumber(str string) bool

//三元运算
Ternary[T any](test bool, trueValue, falseValue T) T
Default[T any](test, defaultValue T) T
TryWithStack(f func(), callback func(recoverValue any, stack []Stack))

cron任务,延迟执行

s := NewScheduler()
s.AddIntervalTask(func() {code... }, time.Millisecond*200)
s.AddDelayTask(func() {code... }, time.Millisecond*200)
s.AddCustomizeTask(func() {code... }, func(t time.Time) time.Time { return t.Add(...) })
s.AddCronTask("0", func(){})

批量按序运行

//注册启动后运行回调
AfterInit(name string, f func())

caller:=&FuncCaller{}
caller.AddFnOrder(func() {code...})

数字

NumberToString[T Number](T) string
Min[T Number](a, b T) T
Abs[T Number](a, b T) T

时间日期

// ParseLocalTimeAuto 自动匹配常见格式,只支持数字格式,支持常见中文
ParseLocalTimeAuto(str string) (LocalTime, error)

// FormatDuration 格式化time.Duration 使其长度尽量为7位
FormatDuration(duration time.Duration) time.Duration 

布隆过滤器

todo

dfa查找

支持字符串等基于 []byte 的类型

dfa:=NewDfa(MakeNewDfsNode[bool](i))
dfa.Add([]byte("aaa"), true) //可以存储这个词对应的信息
dfa.Test([]byte("aaa"))

栈获取

CallerStack(skip int, limit ...int) []Stack