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) string | Base64 编解码 |
HexEncode/Decode(s) string | Hex 编解码 |
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]*V | Map 值转指针 |
MapGet[K,V](m map[K]*V) map[K]V | Map 指针转值 |
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) bool | URL 验证 |
IsIP/IsIPv4/IsIPv6(s) bool | IP 地址验证 |
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) | 单词首字母 |