框架 pkg 包 utils 工具

utils/array — 切片工具

泛型切片操作工具集,包含查找、过滤、映射、集合运算、排序和统计。

import "github.com/tokmz/qi/utils/array"
函数说明
SliceContains[T](slice, item) bool检查是否包含元素
SliceRemove[T](slice, item) []T移除指定元素
SliceRemoveAtIndex[T](slice, i) []T移除指定索引元素
SliceUnique[T](slice) []T去重
SliceIntersect[T](a, b) []T交集
SliceUnion[T](a, b) []T并集
SliceDifference[T](a, b) []T差集
SliceFilter[T](slice, fn) []T过滤
SliceMap[T,R](slice, fn) []R映射
SliceReduce[T,R](slice, init, fn) R规约
SliceReverse[T](slice) []T反转
SliceShuffle[T](slice) []T打乱
SliceChunk[T](slice, size) [][]T分块
SliceFind[T](slice, fn) (T, bool)查找第一个匹配
SliceFindIndex[T](slice, fn) int查找索引
SliceCount[T](slice, fn) int统计匹配数量
SliceEvery[T](slice, fn) bool是否全部满足
SliceSome[T](slice, fn) bool是否存在满足
SliceEqual[T](a, b) bool判断相等
SliceFirst/Last[T](slice) (T, bool)首/尾元素
SliceMin/Max[T](slice) (T, bool)最小/最大值
SliceSum[T](slice) T求和
SliceAverage[T](slice) (T, bool)平均值
SliceJoin[T](slice, sep, fn) string连接为字符串

utils/convert — 类型转换

安全的类型转换工具,支持字符串、数字、布尔、Base64、Hex 和时间转换。

import "github.com/tokmz/qi/utils/convert"
函数说明
ToString(v any) string任意类型转字符串
ToInt/ToInt64/ToFloat64(v any)数值转换
ToBool(v any) bool布尔转换
Base64Encode/Decode(s) stringBase64 编解码
HexEncode/Decode(s) stringHex 编解码
ToTime(v any) time.Time时间转换

utils/datetime — 时间工具

时间格式化、解析、计算和相对时间显示。

import "github.com/tokmz/qi/utils/datetime"
函数说明
Now() time.Time当前时间
Format(t, layout) string格式化时间
Parse(s, layout) time.Time解析时间字符串
StartOfDay/EndOfDay(t) time.Time当天起止时间
StartOfWeek/EndOfWeek(t) time.Time本周起止时间
StartOfMonth/EndOfMonth(t) time.Time本月起止时间
AddDays/AddHours/AddMinutes(t, n)时间加减
DiffDays/DiffHours(a, b) int时间差
IsToday/IsYesterday/IsTomorrow(t)日期判断
RelativeTime(t) string相对时间(如"3分钟前")
Timestamp(t) / FromTimestamp(ts)时间戳转换

utils/pointer — 指针工具

泛型指针操作工具,简化指针创建、取值和集合转换。

import "github.com/tokmz/qi/utils/pointer"
函数说明
Of[T](v T) *T创建指针
Get[T](p *T) T安全取值(nil 返回零值)
GetOrDefault[T](p *T, def T) T取值或默认值
Coalesce[T](ptrs ...*T) T返回第一个非 nil 值
SliceOf[T](vals []T) []*T切片转指针切片
SliceGet[T](ptrs []*T) []T指针切片转值切片
MapOf[K,V](m map[K]V) map[K]*VMap 值转指针
MapGet[K,V](m map[K]*V) map[K]VMap 指针转值

utils/regexp — 正则工具

带缓存的正则表达式工具,内置常用验证模式(邮箱、手机号、URL 等)。

import "github.com/tokmz/qi/utils/regexp"
函数说明
Match(pattern, s) bool正则匹配(自动缓存编译结果)
FindAll(pattern, s) []string查找所有匹配
ReplaceAll(pattern, s, repl) string正则替换
IsEmail(s) bool邮箱验证
IsPhone(s) bool手机号验证
IsURL(s) boolURL 验证
IsIP/IsIPv4/IsIPv6(s) boolIP 地址验证
IsIDCard(s) bool身份证号验证
IsChinese(s) bool中文验证
IsAlpha/IsAlphaNum/IsNumeric(s)字符类型验证

utils/strings — 字符串工具

字符串操作工具集,包含大小写转换、填充、截断、类型检查和编码转换。

import "github.com/tokmz/qi/utils/strings"

大小写转换

函数说明
CamelCase(s) string驼峰命名
SnakeCase(s) string蛇形命名
KebabCase(s) string短横线命名
PascalCase(s) string帕斯卡命名
Upper/Lower/Title/Capitalize(s)大小写转换
SwapCase(s) string大小写互换

填充与截断

函数说明
PadLeft/PadRight(s, length, pad)左/右填充
Center(s, length, pad)居中填充
Truncate(s, length, suffix)截断并添加后缀
Repeat(s, count) string重复字符串
Reverse(s) string反转字符串
Shuffle(s) string打乱字符串
Sub(s, start, end) string安全子串

类型检查

函数说明
IsEmpty/IsNotEmpty/IsBlank(s)空值检查
IsNumeric/IsAlpha/IsAlphaNumeric(s)字符类型检查
IsUpper/IsLower(s)大小写检查
EqualFold(a, b) bool忽略大小写比较

其他操作

函数说明
Contains/ContainsAny/ContainsRune(s, ...)包含检查
HasPrefix/HasSuffix(s, ...)前后缀检查
Index/LastIndex(s, substr)查找位置
Split/SplitN/SplitAny/Join(s, ...)分割与合并
Replace/ReplaceAll/ReplaceChars(s, ...)替换
Trim/TrimLeft/TrimRight/TrimPrefix/TrimSuffix(s, ...)裁剪
Default/DefaultIfEmpty(s, def)默认值
Count(s, substr) / Len(s) / WordCount(s)统计
Quote/Unquote(s)引号操作
Nl2Br/Br2Nl(s)换行符转换
Unique(s)去重相邻重复字符
WordInitials(s)单词首字母