字符串相关操作函数 | |
去除空格或其他字符 | |
|---|---|
| strings.Trim | 删除字符串两端指定的字符集合(默认空格) |
| strings.TrimRight | 删除字符串右边指定的字符集合(默认空格) |
| strings.TrimLeft | 删除字符串左边指定的字符集合(默认空格) |
| strings.TrimSuffix | 删除字符串尾部指定的后缀字符串 精确匹配后缀,而非字符集合 |
| strings.TrimPrefix | 删除字符串开头指定的前缀字符串 精确匹配前缀,而非字符集合 |
字符串生成与转换 | |
| strings.Repeat | 将字符串重复指定次数生成新字符串 |
| strings.Replace | 子字符串替换,可指定替换次数(-1表示全部替换) |
| strings.Split | 将字符串按指定分隔符分割为字符串切片 |
| strings.Reverse | Go 1.20+ 新增,反转字符串 |
| strings.Join | 将字符串切片连接成一个字符串,可指定连接符 |
| fmt.Sprintf | 格式化生成字符串,支持多种格式占位符 |
| strconv.Atoi | 将字符串解析为整数(等价于 strconv.ParseInt(s, 10, 0)) |
| strconv.Itoa | 将整数转换为字符串(等价于 strconv.FormatInt(int64(i), 10)) |
| strconv.FormatFloat | 将浮点数格式化为字符串,支持指定格式和精度 |
字符串大小写转换 | |
| strings.ToLower | 将字符串转化为小写 |
| strings.ToUpper | 将字符串转化为大写 |
| strings.Title | 将字符串中每个单词的首字母转换为大写 |
HTML/转义相关 | |
| html.EscapeString | 将字符转换为HTML实体(转义<、>、&、"、') |
| html.UnescapeString | 将HTML实体还原为原始字符 |
| url.QueryEscape | URL编码字符串,用于URL查询参数 |
| url.QueryUnescape | 解码URL编码的字符串 |
| strconv.Quote | 给字符串添加双引号,并转义特殊字符 |
| strconv.Unquote | 去除字符串的引号,并还原转义字符 |
字符串比较 | |
| strings.EqualFold | 不区分大小写比较两个字符串是否相等 |
| strings.Compare | 区分大小写比较两个字符串,返回-1/0/1表示小于/等于/大于 |
| strings.HasPrefix | 检查字符串是否以指定前缀开头 |
| strings.HasSuffix | 检查字符串是否以指定后缀结尾 |
字符串查找替换 | |
| strings.Contains | 检查字符串是否包含指定子串 |
| strings.Count | 统计子串在字符串中出现的非重叠次数 |
| strings.Index | 查找子串首次出现的位置,未找到返回-1 |
| strings.LastIndex | 查找子串最后一次出现的位置,未找到返回-1 |
| strings.IndexAny | 查找字符集合中任意字符首次出现的位置 |
| strings.ReplaceAll | 替换字符串中所有指定的子串(Go 1.12+) |
字符串统计 | |
| len() | 统计字符串的字节长度 注意:中文字符占3个字节 |
| utf8.RuneCountInString | 统计字符串的字符个数(支持多字节字符) |
字符串编码/哈希 | |
| md5.Sum | 计算字符串的 MD5 散列值,返回16字节数组 |
| sha256.Sum256 | 计算字符串的 SHA256 散列值,返回32字节数组 |
| hex.EncodeToString | 将字节数组编码为十六进制字符串 |
切片/映射(数组)相关函数 | |
创建切片/映射 | |
| make() | 创建切片、映射或通道,可指定容量/长度 |
| make([]T, len, cap) | 创建指定类型、长度和容量的切片 |
| make(map[K]V, cap) | 创建指定键值类型和初始容量的映射 |
| make([]int, 0) + 循环 | 创建包含指定范围元素的切片(需手动实现) |
切片合并和拆分 | |
| append() | 将一个或多个元素/切片追加到目标切片末尾 |
| slice[start:end] | 截取切片的一部分(左闭右开区间) |
| copy() | 将源切片的元素复制到目标切片,返回复制的元素个数 |
切片/映射查找判断 | |
| 手动遍历 | 检查切片中是否包含指定元素(需手动实现) |
| _, ok := m[key] | 判断映射中是否存在指定的键(ok为true表示存在) |
| len() | 获取切片的长度或映射的键值对数量 |
切片/映射操作 | |
| delete() | 删除映射中的指定键值对 |
| sort.Ints | 对整数切片进行升序排序 |
| sort.Strings | 对字符串切片进行升序排序 |
| sort.Slice | 自定义规则对切片排序(Go 1.8+) |
| 手动遍历 | 计算切片中所有元素的总和(需手动实现) |
映射键值操作 | |
| 手动遍历 | 获取映射的所有键,存入切片(需手动实现) |
| 手动遍历 | 获取映射的所有值,存入切片(需手动实现) |
| clear() | 清空映射中的所有键值对(Go 1.21+) |
数学相关函数 | |
| math.Abs | 求浮点数的绝对值 |
| math.Ceil | 进一法取整(向上取整) |
| math.Floor | 舍去法取整(向下取整) |
| math.Mod | 返回x/y的浮点数余数 |
| math.Pow | 返回x的y次方(x^y) |
| math.Round | 浮点数四舍五入到最近的整数 |
| math.Sqrt | 求非负数的平方根 |
| math.Max | 求两个浮点数的最大值 |
| math.Min | 求两个浮点数的最小值 |
| math/rand.Intn | 生成[0,n)范围内的随机整数(需先初始化种子) |
| math.Pi | 圆周率常量(π ≈ 3.141592653589793) |
| strconv.ParseInt(s, 8, 64) | 八进制字符串转换为十进制整数 |
| rand.Seed | 设置随机数生成器的种子(Go 1.20+ 推荐使用 rand.NewSource) |
MySQL数据库相关操作 | |
| sql.Open | 打开一个数据库驱动连接(不会立即建立网络连接) |
| db.Ping | 验证数据库连接是否可用 |
| db.Close | 关闭数据库连接池 |
| db.Query | 执行查询SQL,返回结果集(用于SELECT等) |
| db.Exec | 执行非查询SQL,返回执行结果(用于INSERT/UPDATE/DELETE等) |
| db.Prepare | 创建预编译语句,防止SQL注入 |
| result.LastInsertId | 获取最后插入记录的自增ID |
| result.RowsAffected | 获取受影响的记录行数 |
| rows.Scan | 将查询结果行的数据赋值到指定变量 |
| rows.Close | 关闭结果集,释放资源 |
| db.Begin | 开启事务 |
| tx.Commit | 提交事务 |
| tx.Rollback | 回滚事务 |
文件目录处理相关函数 | |
| filepath.Base | 返回路径中的文件名部分 |
| filepath.Dir | 返回路径中的目录部分 |
| io.Copy | 拷贝文件内容(从源Reader到目标Writer) |
| os.Stat | 检查文件或目录是否存在(结合os.IsNotExist判断) |
| os.ReadFile | 将整个文件读入字节切片(Go 1.16+) |
| os.WriteFile | 将字节切片写入文件,可指定权限(Go 1.16+) |
| os.Open | 以只读模式打开文件 |
| os.Create | 创建或截断文件(权限0666) |
| file.Close | 关闭文件句柄 |
| file.Read | 从文件读取数据到字节切片 |
| file.Write | 将字节切片写入文件 |
| file.Seek | 设置文件读写指针位置 |
| os.Mkdir | 新建目录,可指定权限 |
| os.MkdirAll | 递归创建目录结构 |
| os.Remove | 删除文件或空目录 |
| os.RemoveAll | 递归删除目录及所有内容 |
| os.Rename | 重命名文件或目录 |
| os.Stat | 获取文件/目录的详细信息(大小、权限、修改时间等) |
| fi.IsDir() | 判断文件信息是否为目录(fi为os.FileInfo类型) |
| fi.Mode().IsRegular() | 判断是否为普通文件 |
| filepath.Walk | 遍历目录树,访问每个文件/目录 |
| filepath.Ext | 返回文件的扩展名(如.txt、.jpg) |
| os.Chmod | 修改文件/目录的权限 |
| os.Chown | 修改文件/目录的所有者和所属组 |
Date/Time 函数 | |
| time.Now | 获取当前本地时间 |
| time.UTC | UTC时区常量 |
| time.Local | 本地时区常量 |
| time.Date | 根据指定的年、月、日、时、分、秒、纳秒和时区创建时间 |
| t.Format | 格式化时间为字符串(使用参考时间2006-01-02 15:04:05) |
| time.Parse | 将字符串解析为时间,使用默认时区 |
| time.ParseInLocation | 指定时区解析时间字符串 |
| time.Unix | 根据Unix时间戳(秒)和纳秒创建时间 |
| t.UnixNano | 获取时间的Unix纳秒时间戳 |
| t.Add | 添加时间间隔(如1小时、30分钟) |
| t.Sub | 计算两个时间的差值,返回time.Duration |
| t1.Sub(t2) | 计算t1和t2的时间差 |
| time.Sleep | 暂停当前goroutine指定的时间间隔 |
| t.Hour | 获取时间的小时部分(0-23) |
| t.Minute | 获取时间的分钟部分(0-59) |
| t.Second | 获取时间的秒部分(0-59) |
| t.Day | 获取时间的日期部分(1-31) |
| t.Month | 获取时间的月份(1-12) |
| t.Year | 获取时间的年份 |
| t.Weekday | 获取时间对应的星期几(0-6,周日为0) |
| time.LoadLocation | 加载指定时区(如"Asia/Shanghai") |