utils

package
v1.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 4, 2026 License: MIT Imports: 114 Imported by: 0

Documentation

Overview

Package utils 提供中文命名的比较工具函数库,涵盖数值、字符串等类型的比较操作。

Package utils 提供加解密算法常用函数。 本文件集成 AES、DES、3DES、RC4、XOR、TEA/XXTEA 等常用对称加解密算法。 输出格式统一为 Base64 编码字符串,方便存储与传输。

注意:

  • ECB 模式安全性较低,不建议用于生产环境的加密需求,推荐 GCM 或 CBC 模式。
  • 所有函数均已添加详细注释,包括参数说明、返回值及注意事项。

Package utils 提供中文命名的算法工具函数库,涵盖排序、查找、缓存等常用算法实现。

Package utils 提供中文命名的数学工具函数库,涵盖数值计算、统计等操作。

Package utils 提供中文命名的 Map 操作工具函数库,涵盖键值查询、转换等操作。

Package utils 提供中文命名的重试工具函数库,支持带退避策略的重复执行。

Package utils 提供中文命名的切片操作工具函数库,涵盖去重、排序、查找等操作。

Package utils 提供中文命名的字符串操作工具函数库,涵盖反转、格式化等操作。

Package utils 提供中文命名的通用工具函数库,涵盖类型转换、编码处理、文本操作、文件管理、 网络请求、加密校验、并发安全等常用功能,是 Go 语言版的精易模块。

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Abs

func Abs(n int) int

Abs returns the absolute value of an integer.

Parameters:

  • n: integer to get absolute value

Returns:

  • int: absolute value

Example:

Abs(-5)  // 5
Abs(5)   // 5

func B编码_BASE32HEX编码

func B编码_BASE32HEX编码(字节集 []byte) string

B编码_BASE32HEX编码 将字节集进行 Base32 Hex 编码(使用 0-9 A-V 字符集)。

参数:

  • 字节集: 待编码的字节集

返回:

  • string: Base32 Hex 编码后的字符串

func B编码_BASE32HEX解码

func B编码_BASE32HEX解码(文本 string) []byte

B编码_BASE32HEX解码 将 Base32 Hex 编码的文本解码为字节集。

参数:

  • 文本: Base32 Hex 编码的文本

返回:

  • []byte: 解码后的字节集;解码失败返回空字节集

func B编码_BASE32编码

func B编码_BASE32编码(字节集 []byte) string

B编码_BASE32编码 将字节集进行 Base32 编码。

参数:

  • 字节集: 待编码的字节集

返回:

  • string: Base32 编码后的字符串

func B编码_BASE32解码

func B编码_BASE32解码(文本 string) []byte

B编码_BASE32解码 将 Base32 编码的文本解码为字节集。

参数:

  • 文本: Base32 编码的文本

返回:

  • []byte: 解码后的字节集;解码失败返回空字节集

func B编码_BASE64URL编码

func B编码_BASE64URL编码(字节集 []byte) string

B编码_BASE64URL编码 将字节集进行 URL 安全的 Base64 编码。 使用 - 替换 +,_ 替换 /,不含 = 填充,适合用于 URL 参数。

参数:

  • 字节集: 待编码的字节集

返回:

  • string: URL 安全的 Base64 编码字符串

func B编码_BASE64URL解码

func B编码_BASE64URL解码(文本 string) []byte

B编码_BASE64URL解码 将 URL 安全的 Base64 编码文本解码为字节集。

参数:

  • 文本: URL 安全的 Base64 编码文本

返回:

  • []byte: 解码后的字节集;解码失败返回空字节集

func B编码_BASE64无填充编码

func B编码_BASE64无填充编码(字节集 []byte) string

B编码_BASE64无填充编码 将字节集进行标准 Base64 编码(无 = 填充)。

参数:

  • 字节集: 待编码的字节集

返回:

  • string: 无填充的 Base64 编码字符串

func B编码_BASE64无填充解码

func B编码_BASE64无填充解码(文本 string) []byte

B编码_BASE64无填充解码 将无填充的 Base64 编码文本解码为字节集。

参数:

  • 文本: 无填充的 Base64 编码文本

返回:

  • []byte: 解码后的字节集;解码失败返回空字节集

func B编码_BASE64编码

func B编码_BASE64编码(字节集 []byte) string

B编码_BASE64编码 将字节集进行 Base64 编码。

参数:

  • 字节集: 待编码的字节集

返回:

  • string: Base64 编码后的字符串

func B编码_BASE64解码

func B编码_BASE64解码(文本 string) []byte

B编码_BASE64解码 将 Base64 编码的文本解码为字节集。

参数:

  • 文本: Base64 编码的文本

返回:

  • []byte: 解码后的字节集;解码失败返回空字节集

func B编码_GB18030到UTF8

func B编码_GB18030到UTF8(数据 []byte) string

B编码_GB18030到UTF8 将 GB18030 编码的字节集转换为 UTF-8 文本。

参数:

  • 数据: GB18030 编码的字节集

返回:

  • string: UTF-8 编码的文本;转换失败返回空串

func B编码_GBK到UTF8

func B编码_GBK到UTF8(数据 []byte) string

B编码_GBK到UTF8 将 GBK(ANSI)编码的字节集转换为 UTF-8 文本。

参数:

  • 数据: GBK 编码的字节集

返回:

  • string: UTF-8 编码的文本;转换失败返回空串

func B编码_HTML编码

func B编码_HTML编码(文本 string) string

B编码_HTML编码 将文本中的 HTML 特殊字符进行转义编码。 将 & < > " ' 转换为 HTML 实体。

参数:

  • 文本: 待编码的文本

返回:

  • string: HTML 编码后的文本

func B编码_HTML解码

func B编码_HTML解码(文本 string) string

B编码_HTML解码 将 HTML 实体解码为原始字符。 将 &amp; &lt; &gt; &quot; &#39; 等实体还原。

参数:

  • 文本: 包含 HTML 实体的文本

返回:

  • string: 解码后的文本

func B编码_JSON编码

func B编码_JSON编码(值 interface{}) string

B编码_JSON编码 将 Go 值编码为 JSON 字符串。

参数:

  • 值: 待编码的 Go 值(结构体、Map 等)

返回:

  • string: JSON 编码字符串;编码失败返回空串

func B编码_JSON编码缩进

func B编码_JSON编码缩进(值 interface{}, 前缀 string, 缩进 string) string

B编码_JSON编码缩进 将 Go 值编码为带缩进的 JSON 字符串。

参数:

  • 值: 待编码的 Go 值
  • 前缀: 每行前缀(可为空)
  • 缩进: 缩进字符串(如 " " 或 "\t")

返回:

  • string: 带缩进的 JSON 字符串;编码失败返回空串

func B编码_JSON解码

func B编码_JSON解码(文本 string, 目标 interface{}) error

B编码_JSON解码 将 JSON 字符串解码到目标变量。

参数:

  • 文本: JSON 编码的文本
  • 目标: 解码目标的指针

返回:

  • error: 解码失败时返回错误

func B编码_MIMEB64编码

func B编码_MIMEB64编码(文本 string) string

B编码_MIMEB64编码 对文本进行 MIME Base64 编码(用于邮件头部)。

参数:

  • 文本: 待编码的文本

返回:

  • string: MIME Base64 编码字符串

func B编码_MIME编码

func B编码_MIME编码(文本 string) string

B编码_MIME编码 对文本进行 MIME 编码(用于邮件头部)。 自动选择 Quoted-Printable 或 Base64 编码方式。

参数:

  • 文本: 待编码的文本

返回:

  • string: MIME 编码字符串

func B编码_Punycode编码

func B编码_Punycode编码(域名 string) string

B编码_Punycode编码 将国际化域名进行 Punycode 编码。 例如 "中文.com" 编码为 "xn--fiq228c.com"。

参数:

  • 域名: 国际化域名

返回:

  • string: Punycode 编码后的域名;编码失败返回原串

func B编码_Punycode解码

func B编码_Punycode解码(域名 string) string

B编码_Punycode解码 将 Punycode 编码的域名解码为原始域名。

参数:

  • 域名: Punycode 编码的域名

返回:

  • string: 解码后的域名;解码失败返回原串

func B编码_QP编码

func B编码_QP编码(字节集 []byte) string

B编码_QP编码 将字节集进行 Quoted-Printable 编码。 常用于邮件传输中的非 ASCII 字符编码。

参数:

  • 字节集: 待编码的字节集

返回:

  • string: QP 编码后的字符串

func B编码_QP解码

func B编码_QP解码(文本 string) []byte

B编码_QP解码 将 Quoted-Printable 编码的文本解码为字节集。

参数:

  • 文本: QP 编码的文本

返回:

  • []byte: 解码后的字节集;解码失败返回空字节集

func B编码_URL组件编码

func B编码_URL组件编码(网址 string) string

B编码_URL组件编码 编码 URL 组件(对路径和查询参数分别编码)。 返回编码后的完整 URL 字符串。

参数:

  • 网址: 原始 URL 字符串

返回:

  • string: 编码后的 URL;解析失败返回原串

func B编码_URL编码

func B编码_URL编码(欲编码的文本 string) string

B编码_URL编码 对文本进行 URL 编码(百分号编码)。 将特殊字符转换为 %XX 格式,中文等非 ASCII 字符也会被编码。

参数:

  • 欲编码的文本: 待编码的文本

返回:

  • string: URL 编码后的文本

func B编码_URL解码

func B编码_URL解码(URL string) string

B编码_URL解码 对 URL 编码的文本进行解码。 将 %XX 格式的编码还原为原始字符。

参数:

  • URL: URL 编码的文本

返回:

  • string: 解码后的文本;解码失败返回空串

func B编码_URL路径编码

func B编码_URL路径编码(路径 string) string

B编码_URL路径编码 对 URL 路径进行编码,保留 / 等路径分隔符。 与 B编码_URL编码 不同,此函数不会编码 / 、& 、= 等路径合法字符。

参数:

  • 路径: 待编码的 URL 路径

返回:

  • string: 编码后的路径

func B编码_URL路径解码

func B编码_URL路径解码(路径 string) string

B编码_URL路径解码 对 URL 路径编码进行解码。

参数:

  • 路径: URL 编码的路径

返回:

  • string: 解码后的路径;失败返回空串

func B编码_UTF8到GB18030

func B编码_UTF8到GB18030(文本 string) []byte

B编码_UTF8到GB18030 将 UTF-8 编码的文本转换为 GB18030 编码。 GB18030 是 GBK 的超集,支持更多中文字符。

参数:

  • 文本: UTF-8 编码的文本

返回:

  • []byte: GB18030 编码的字节集;转换失败返回空字节集

func B编码_UTF8到GBK

func B编码_UTF8到GBK(文本 string) []byte

B编码_UTF8到GBK 将 UTF-8 编码的文本转换为 GBK(ANSI)编码。 中文 Windows 系统常用 GBK 编码。

参数:

  • 文本: UTF-8 编码的文本

返回:

  • []byte: GBK 编码的字节集;转换失败返回空字节集

func B编码_UTF8到UTF16

func B编码_UTF8到UTF16(文本 string) []byte

B编码_UTF8到UTF16 将 UTF-8 文本转换为 UTF-16 小端序字节集。 Windows API 常用 UTF-16LE 编码。

参数:

  • 文本: UTF-8 编码的文本

返回:

  • []byte: UTF-16LE 编码的字节集(含 BOM 头 FF FE)

func B编码_UTF8到UTF16大端

func B编码_UTF8到UTF16大端(文本 string) []byte

B编码_UTF8到UTF16大端 将 UTF-8 文本转换为 UTF-16 大端序字节集。

参数:

  • 文本: UTF-8 编码的文本

返回:

  • []byte: UTF-16BE 编码的字节集(含 BOM 头 FE FF)

func B编码_UTF16到UTF8

func B编码_UTF16到UTF8(数据 []byte) string

B编码_UTF16到UTF8 将 UTF-16 字节集转换为 UTF-8 文本。 自动识别 BOM 头判断字节序,无 BOM 默认小端。

参数:

  • 数据: UTF-16 编码的字节集

返回:

  • string: UTF-8 编码的文本

func B编码_Unicode解码

func B编码_Unicode解码(文本 string) string

B编码_Unicode解码 将 \uXXXX 格式的 Unicode 转义序列解码为文本。 支持 \uXXXX 和 \UXXXXXXXX 两种格式。

参数:

  • 文本: 包含 Unicode 转义序列的文本

返回:

  • string: 解码后的文本

func B编码_usc2到文本

func B编码_usc2到文本(字符串 string) string

B编码_usc2到文本 将 USC2/Unicode 转义序列转换为中文文本。 例如将 \u4e2d\u6587 转换为 "中文"。

参数:

  • 字符串: 包含 USC2 转义序列的字符串(如 "\\u4e2d\\u6587")

返回:

  • string: 转换后的中文文本;失败返回空串

func B编码_十六进制大写

func B编码_十六进制大写(字节集 []byte) string

B编码_十六进制大写 将字节集编码为大写十六进制字符串。

参数:

  • 字节集: 待编码的字节集

返回:

  • string: 大写十六进制编码字符串

func B编码_十六进制编码

func B编码_十六进制编码(字节集 []byte) string

B编码_十六进制编码 将字节集编码为十六进制字符串(小写)。

参数:

  • 字节集: 待编码的字节集

返回:

  • string: 十六进制编码字符串

func B编码_十六进制解码

func B编码_十六进制解码(文本 string) []byte

B编码_十六进制解码 将十六进制字符串解码为字节集。

参数:

  • 文本: 十六进制编码的文本

返回:

  • []byte: 解码后的字节集;解码失败返回空字节集

func B编码_取UTF8字节数

func B编码_取UTF8字节数(文本 string) int

B编码_取UTF8字节数 获取文本的 UTF-8 编码字节数。

参数:

  • 文本: 输入文本

返回:

  • int: UTF-8 编码后的字节长度

func B编码_取Unicode码点

func B编码_取Unicode码点(文本 string, 位置 int) int

B编码_取Unicode码点 获取文本中指定位置字符的 Unicode 码点值。

参数:

  • 文本: 输入文本
  • 位置: 字符位置(从 0 开始,按 rune 计数)

返回:

  • int: Unicode 码点值;位置越界返回 -1

func B编码_取字符数

func B编码_取字符数(文本 string) int

B编码_取字符数 获取文本的 Unicode 字符数(按 rune 计数)。 与 len() 不同,此函数正确计算多字节字符。

参数:

  • 文本: 输入文本

返回:

  • int: 字符数量

func B编码_大端到整数

func B编码_大端到整数(字节集 []byte) uint64

B编码_大端到整数 将大端字节序解码为 uint64 整数。

参数:

  • 字节集: 大端字节序的字节集

返回:

  • uint64: 解码后的整数值

func B编码_小端到整数

func B编码_小端到整数(字节集 []byte) uint64

B编码_小端到整数 将小端字节序解码为 uint64 整数。

参数:

  • 字节集: 小端字节序的字节集

返回:

  • uint64: 解码后的整数值

func B编码_整数到大端

func B编码_整数到大端(值 interface{}) []byte

B编码_整数到大端 将 uint16/uint32/uint64 整数编码为大端字节序。

参数:

  • 值: 待编码的整数值

返回:

  • []byte: 大端字节序的字节集

func B编码_整数到小端

func B编码_整数到小端(值 interface{}) []byte

B编码_整数到小端 将 uint16/uint32/uint64 整数编码为小端字节序。

参数:

  • 值: 待编码的整数值

返回:

  • []byte: 小端字节序的字节集

func B编码_文本到USC2

func B编码_文本到USC2(文本 string) string

B编码_文本到USC2 将中文文本转换为 USC2/Unicode 转义序列。 例如将 "中文" 转换为 \u4e2d\u6587。

参数:

  • 文本: 待转换的文本

返回:

  • string: USC2 转义序列字符串

func B编码_文本到Unicode

func B编码_文本到Unicode(文本 string) string

B编码_文本到Unicode 将文本转换为 \\uXXXX 格式的 Unicode 转义序列(所有字符)。

参数:

  • 文本: 待转换的文本

返回:

  • string: 所有字符的 Unicode 转义序列

func B编码_是否有UTF8BOM

func B编码_是否有UTF8BOM(数据 []byte) bool

B编码_是否有UTF8BOM 检查字节集是否包含 UTF-8 BOM 头。

参数:

  • 数据: 待检查的字节集

返回:

  • bool: 包含 BOM 返回 true

func B编码_是否有效UTF8

func B编码_是否有效UTF8(数据 []byte) bool

B编码_是否有效UTF8 检查字节集是否为有效的 UTF-8 编码。

参数:

  • 数据: 待检查的字节集

返回:

  • bool: 有效返回 true

func B编码_添加UTF8BOM

func B编码_添加UTF8BOM(数据 []byte) []byte

B编码_添加UTF8BOM 为 UTF-8 字节集添加 BOM 头(EF BB BF)。 某些 Windows 程序需要 BOM 头来识别 UTF-8 编码。

参数:

  • 数据: UTF-8 编码的字节集

返回:

  • []byte: 带 BOM 头的 UTF-8 字节集

func B编码_码点到文本

func B编码_码点到文本(码点 int) string

B编码_码点到文本 将 Unicode 码点值转换为对应的字符。

参数:

  • 码点: Unicode 码点值

返回:

  • string: 对应的字符;无效码点返回空串

func B编码_移除UTF8BOM

func B编码_移除UTF8BOM(数据 []byte) []byte

B编码_移除UTF8BOM 移除 UTF-8 字节集的 BOM 头。

参数:

  • 数据: 可能包含 BOM 头的 UTF-8 字节集

返回:

  • []byte: 移除 BOM 头后的字节集

func B表达式_求值

func B表达式_求值(表达式对象 *govaluate.EvaluableExpression) (interface{}, error)

B表达式_求值 对已编译的表达式对象进行求值(无参数)。

参数:

  • 表达式对象: 通过 B表达式_编译 获得的表达式对象

返回:

  • interface{}: 计算结果
  • error: 计算错误时返回

func B表达式_求值带参数

func B表达式_求值带参数(表达式对象 *govaluate.EvaluableExpression, 参数 map[string]interface{}) (interface{}, error)

B表达式_求值带参数 对已编译的表达式对象进行求值(带参数)。

参数:

  • 表达式对象: 通过 B表达式_编译 获得的表达式对象
  • 参数: 变量名到值的映射

返回:

  • interface{}: 计算结果
  • error: 计算错误时返回

func B表达式_编译

func B表达式_编译(表达式 string) (*govaluate.EvaluableExpression, error)

B表达式_编译 预编译表达式,返回可重复使用的表达式对象。 适用于需要多次计算同一表达式的场景,避免重复解析。

参数:

  • 表达式: 表达式字符串

返回:

  • *govaluate.EvaluableExpression: 编译后的表达式对象
  • error: 表达式语法错误时返回

func B表达式_编译并计算

func B表达式_编译并计算(表达式 string) (interface{}, error)

B表达式_编译并计算 编译表达式后立即计算(无参数)。 如果需要多次计算同一表达式,建议使用 B表达式_编译 获取对象后重复使用。

参数:

  • 表达式: 表达式字符串

返回:

  • interface{}: 计算结果
  • error: 编译或计算错误时返回

func B表达式_计算

func B表达式_计算(表达式 string) (interface{}, error)

B表达式_计算 计算一个数学或逻辑表达式字符串并返回结果。 支持基本四则运算、比较运算、逻辑运算和内置函数。 表达式示例: "1 + 2 * 3"、"10 > 5 && 3 < 7"、"pow(2, 10)"。

参数:

  • 表达式: 表达式字符串

返回:

  • interface{}: 计算结果,类型取决于表达式(int64/float64/bool 等)
  • error: 表达式语法错误或计算错误时返回

func B表达式_计算带参数

func B表达式_计算带参数(表达式 string, 参数 map[string]interface{}) (interface{}, error)

B表达式_计算带参数 计算带参数的表达式。 参数以 map 形式传入,表达式中用变量名引用。 示例: 表达式 "a + b * c",参数 {"a": 1, "b": 2, "c": 3},结果为 7。

参数:

  • 表达式: 包含变量的表达式字符串
  • 参数: 变量名到值的映射,key 为变量名(string),value 为变量值

返回:

  • interface{}: 计算结果
  • error: 表达式语法错误、变量未定义或计算错误时返回

func CamelToSnake

func CamelToSnake(s string) string

CamelToSnake converts camelCase naming to snake_case (lowercase).

Parameters:

  • s: camelCase string to convert

Returns:

  • string: snake_case string

Example:

CamelToSnake("helloWorld")  // "hello_world"
CamelToSnake("XMLParser")    // "xml_parser"

func ClearMap

func ClearMap[K comparable, V any](m map[K]V)

ClearMap clears all items from a Map.

Type Parameters:

  • K: key type (must be comparable)
  • V: value type

Parameters:

  • m: Map to clear

Example:

m := map[string]int{"a": 1, "b": 2}
ClearMap(m)
// m = map[string]int{}

func CompareEqual

func CompareEqual[T comparable](a, b T) bool

CompareEqual 检查两个值是否完全相等(包括类型和值)。

Type Parameters:

  • T: 任意可比较类型

Parameters:

  • a: 第一个值
  • b: 第二个值

Returns:

  • bool: 相等返回 true,否则返回 false

Example:

CompareEqual(1, 1)        // true
CompareEqual("a", "a")    // true
CompareEqual(1, "1")      // false

func CompareValueEqual

func CompareValueEqual(a, b interface{}) bool

CompareValueEqual 检查两个值的值是否相等(忽略类型差异)。 使用 reflect.DeepEqual 进行深度比较。

Parameters:

  • a: 第一个值
  • b: 第二个值

Returns:

  • bool: 值相等返回 true,否则返回 false

Example:

CompareValueEqual([]int{1,2,3}, []int{1,2,3})  // true
CompareValueEqual(map[int]int{1:1}, map[int]int{1:1})  // true

func Contains

func Contains[T comparable](slice []T, item T) bool

Contains checks if a slice contains a specified element.

Type Parameters:

  • T: comparable type

Parameters:

  • slice: slice to check
  • item: item to search for

Returns:

  • bool: true if contains, false otherwise

Example:

Contains([]int{1, 2, 3}, 2)  // true
Contains([]int{1, 2, 3}, 4)  // false

func ContainsKey

func ContainsKey[K comparable, V any](m map[K]V, key K) bool

ContainsKey checks if a Map contains a specified key.

Type Parameters:

  • K: key type (must be comparable)
  • V: value type

Parameters:

  • m: Map to check
  • key: key to search for

Returns:

  • bool: true if contains, false otherwise

Example:

m := map[string]int{"a": 1, "b": 2}
ContainsKey(m, "a")  // true
ContainsKey(m, "c")  // false

func ContainsSubstring

func ContainsSubstring(s, substr string) bool

ContainsSubstring checks if a string contains a specified substring.

Parameters:

  • s: source string
  • substr: substring to search for

Returns:

  • bool: true if contains, false otherwise

Example:

ContainsSubstring("hello world", "world")  // true
ContainsSubstring("hello world", "xyz")   // false

func CountCharacters

func CountCharacters(s string) map[rune]int

CountCharacters counts the occurrences of each character in a string.

Parameters:

  • s: string to count

Returns:

  • map[rune]int: character count map

Example:

CountCharacters("hello")  // map[h:1 e:1 l:2 o:1]

func CountWords

func CountWords(s string) int

CountWords counts the number of words in a string (separated by spaces).

Parameters:

  • s: string to count

Returns:

  • int: word count

Example:

CountWords("hello world")  // 2
CountWords("one")          // 1

func C爬虫_创建

func C爬虫_创建() *colly.Collector

C爬虫_创建 创建一个新的网页采集器。 基于 colly 库实现,支持回调式的网页爬取。 通过注册回调函数处理不同类型的 HTML 元素和事件。

返回:

  • *colly.Collector: 采集器实例

func C爬虫_取元素属性

func C爬虫_取元素属性(元素 *colly.HTMLElement, 属性名 string) string

C爬虫_取元素属性 从 HTMLElement 中提取指定属性的值。

参数:

  • 元素: HTML 元素对象
  • 属性名: HTML 属性名,如 "href"、"src"、"class"

返回:

  • string: 属性值;属性不存在时返回空串

func C爬虫_取元素文本

func C爬虫_取元素文本(元素 *colly.HTMLElement) string

C爬虫_取元素文本 从 HTMLElement 中提取文本内容。 是 colly.HTMLElement.Text 的便捷封装。

参数:

  • 元素: HTML 元素对象

返回:

  • string: 元素的文本内容

func C爬虫_注册HTML回调

func C爬虫_注册HTML回调(采集器 *colly.Collector, 选择器 string, 回调函数 func(e *colly.HTMLElement))

C爬虫_注册HTML回调 注册 HTML 元素选择器回调。 当采集器发现匹配 CSS 选择器的元素时,调用回调函数。 示例: C爬虫_注册HTML回调(c, "div.title", func(e *colly.HTMLElement) {...})

参数:

  • 采集器: 采集器实例
  • 选择器: CSS 选择器,如 "a[href]"、"div.content"
  • 回调函数: 匹配元素时的回调,参数为 HTMLElement

func C爬虫_注册响应回调

func C爬虫_注册响应回调(采集器 *colly.Collector, 回调函数 func(r *colly.Response))

C爬虫_注册响应回调 注册 HTTP 响应回调。 每次收到响应时调用,可用于检查状态码、记录日志等。

参数:

  • 采集器: 采集器实例
  • 回调函数: 响应回调,参数为 *colly.Response

func C爬虫_注册请求回调

func C爬虫_注册请求回调(采集器 *colly.Collector, 回调函数 func(r *colly.Request))

C爬虫_注册请求回调 注册 HTTP 请求回调。 每次发送请求前调用,可用于修改请求头、添加认证等。

参数:

  • 采集器: 采集器实例
  • 回调函数: 请求回调,参数为 *colly.Request

func C爬虫_注册错误回调

func C爬虫_注册错误回调(采集器 *colly.Collector, 回调函数 func(r *colly.Response, err error))

C爬虫_注册错误回调 注册错误回调。 请求失败时调用,可用于错误处理和重试逻辑。

参数:

  • 采集器: 采集器实例
  • 回调函数: 错误回调,参数为 *colly.Response 和 error

func C爬虫_设置请求头

func C爬虫_设置请求头(采集器 *colly.Collector, 请求头 map[string]string)

C爬虫_设置请求头 设置采集器的默认请求头。

参数:

  • 采集器: 采集器实例
  • 请求头: HTTP 请求头键值对

func C爬虫_访问

func C爬虫_访问(采集器 *colly.Collector, 网址 string) error

C爬虫_访问 访问指定的 URL。 采集器会发送 HTTP 请求并触发已注册的回调函数。

参数:

  • 采集器: 采集器实例
  • 网址: 要访问的 URL

返回:

  • error: 访问失败时返回错误

func C爬虫_限制并发

func C爬虫_限制并发(采集器 *colly.Collector, 域名 string, 并发数 int, 间隔毫秒 int)

C爬虫_限制并发 设置采集器的并发限制和请求间隔。 防止请求过于频繁被目标网站封禁。

参数:

  • 采集器: 采集器实例
  • 域名: 限制规则适用的域名
  • 并发数: 最大并发请求数
  • 间隔毫秒: 同一域名两次请求之间的间隔(毫秒)

func C程序_写日志

func C程序_写日志(日志内容 string, 日志路径 string)

C程序_写日志 将日志内容追加写入到指定路径的日志文件。 每条日志自动添加时间戳前缀(格式:2006-01-02 15:04:05)。 如果日志文件不存在,会自动创建。日志路径为空时默认写入程序同目录下的"运行日志.txt"。

参数:

  • 日志内容: 要记录的日志文本
  • 日志路径: 日志文件的完整路径,可为空(默认使用程序目录下的"运行日志.txt")

func C程序_删除自身

func C程序_删除自身() error

C程序_删除自身 删除当前运行的可执行文件。 注意:在 Windows 上,正在运行的程序文件被锁定,删除操作通常会失败。 此函数存在自身被占用的问题,建议仅在程序即将退出时调用。

返回:

  • error: 成功返回 nil,失败返回错误信息

func C程序_取GUID

func C程序_取GUID() string

C程序_取GUID 生成标准的 Version 4 UUID(随机 UUID)。 格式如:635897f8-2a48-4882-b3e1-823b8e5b6df8(小写十六进制)。 符合 RFC 4122 第 4.4 节规范。

返回:

  • string: 8-4-4-4-12 格式的 UUID 字符串

func C程序_取cmd路径

func C程序_取cmd路径() string

C程序_取cmd路径 尝试获取系统 cmd.exe 的路径。 注意:当前实现使用 ReadLink 读取符号链接,可能在某些系统上失败。

返回:

  • string: cmd.exe 的路径;失败时程序终止(log.Fatal)

func C程序_取临时目录

func C程序_取临时目录() string

C程序_取临时目录 获取操作系统的临时目录路径。 依次尝试 TEMP、TMP 环境变量,最后回退到 SYSTEMROOT\Temp。

返回:

  • string: 临时目录的绝对路径

func C程序_取命令行

func C程序_取命令行() []string

C程序_取命令行 获取启动程序时的命令行参数。 返回 os.Args 的完整切片,args[0] 为程序路径,args[1:] 为附加参数。

返回:

  • []string: 命令行参数数组

func C程序_取运行目录

func C程序_取运行目录() string

C程序_取运行目录 获取当前可执行文件所在的目录。 会解析符号链接,返回真实的目录路径。

返回:

  • string: 可执行文件所在目录的绝对路径;失败时程序终止

func C程序_延时

func C程序_延时(毫秒数 int64) bool

C程序_延时 暂停当前 goroutine 指定的毫秒数。 使用 time.Sleep 实现,精度取决于操作系统调度器。

参数:

  • 毫秒数: 延时的毫秒数

返回:

  • bool: 始终返回 true

func C程序_延时2

func C程序_延时2(毫秒 int) bool

C程序_延时2 逐毫秒循环延时,精度为 1ms。 相比 C程序_延时,此函数可被中断(如通过 channel), 但循环开销较大,一般场景推荐使用 C程序_延时。

参数:

  • 毫秒: 延时的毫秒数

返回:

  • bool: 始终返回 true

func C程序_是否被调试

func C程序_是否被调试() bool

C程序_是否被调试 检测当前程序是否正在被调试器附加。 注意:当前实现仅检查进程 ID 是否非零,实际无法可靠检测调试状态。 如需真正的反调试检测,需要使用平台特定 API。

返回:

  • bool: 当前实现始终返回 true(pid != 0)

func C程序_禁止重复运行

func C程序_禁止重复运行() bool

C程序_禁止重复运行 通过环境变量防止程序重复运行。 如果环境变量 GO_NO_RERUN 已设置,则调用 os.Exit(0) 退出当前进程。

返回:

  • bool: 如果环境变量已设置则退出程序;否则返回 false

func C程序_运行Win

func C程序_运行Win(欲运行的命令行 string) string

C程序_运行Win 通过 PowerShell 执行命令行指令,并返回输出结果。 输出内容会自动从 GBK 编码转换为 UTF-8。 注意:此函数会阻塞等待命令执行完毕。

参数:

  • 欲运行的命令行: 要执行的 PowerShell 命令

返回:

  • string: 命令执行后的输出文本(UTF-8 编码)

func C类型_到Duration

func C类型_到Duration(值 interface{}) interface{}

C类型_到Duration 将任意类型的值转换为 time.Duration。 字符串 "5s" → 5秒,"1h30m" → 1小时30分钟。

参数:

  • 值: 待转换的值

返回:

  • time.Duration: 转换后的时间间隔

func C类型_到整数

func C类型_到整数(值 interface{}) int

C类型_到整数 将任意类型的值转换为 int。 字符串 "123" → 123,浮点数 3.14 → 3,布尔值 true → 1。

参数:

  • 值: 待转换的值

返回:

  • int: 转换后的整数

func C类型_到整数64

func C类型_到整数64(值 interface{}) int64

C类型_到整数64 将任意类型的值转换为 int64。

参数:

  • 值: 待转换的值

返回:

  • int64: 转换后的 int64 值

func C类型_到整数切片

func C类型_到整数切片(值 interface{}) []int

C类型_到整数切片 将任意类型的值转换为 []int。

参数:

  • 值: 待转换的值

返回:

  • []int: 整数切片

func C类型_到文本

func C类型_到文本(值 interface{}) string

C类型_到文本 将任意类型的值转换为字符串。 基于 cast.ToStringE 实现,支持基本类型及常见复合类型的转换。

参数:

  • 值: 待转换的值

返回:

  • string: 转换后的字符串

func C类型_到文本切片

func C类型_到文本切片(值 interface{}) []string

C类型_到文本切片 将任意类型的值转换为 []string。 支持逗号分隔的字符串 "a,b,c" → ["a","b","c"], 也支持 []interface{} → []string。

参数:

  • 值: 待转换的值

返回:

  • []string: 字符串切片

func C类型_到时间

func C类型_到时间(值 interface{}) interface{}

C类型_到时间 将任意类型的值转换为 time.Time。 支持常见的时间格式字符串,如 "2006-01-02 15:04:05"。

参数:

  • 值: 待转换的值

返回:

  • time.Time: 转换后的时间

func C类型_到浮点数

func C类型_到浮点数(值 interface{}) float64

C类型_到浮点数 将任意类型的值转换为 float64。

参数:

  • 值: 待转换的值

返回:

  • float64: 转换后的浮点数

func C类型_到逻辑型

func C类型_到逻辑型(值 interface{}) bool

C类型_到逻辑型 将任意类型的值转换为 bool。 字符串 "true"/"1" → true,"false"/"0" → false。

参数:

  • 值: 待转换的值

返回:

  • bool: 转换后的布尔值

func C类型_安全到整数

func C类型_安全到整数(值 interface{}, 默认值 int) int

C类型_安全到整数 将任意类型的值转换为 int,转换失败时返回默认值。

参数:

  • 值: 待转换的值
  • 默认值: 转换失败时返回的默认整数

返回:

  • int: 转换后的整数或默认值

func C类型_安全到文本

func C类型_安全到文本(值 interface{}, 默认值 string) string

C类型_安全到文本 将任意类型的值转换为字符串,转换失败时返回默认值。

参数:

  • 值: 待转换的值
  • 默认值: 转换失败时返回的默认字符串

返回:

  • string: 转换后的字符串或默认值

func C类型_安全到浮点数

func C类型_安全到浮点数(值 interface{}, 默认值 float64) float64

C类型_安全到浮点数 将任意类型的值转换为 float64,转换失败时返回默认值。

参数:

  • 值: 待转换的值
  • 默认值: 转换失败时返回的默认浮点数

返回:

  • float64: 转换后的浮点数或默认值

func C类型_安全到逻辑型

func C类型_安全到逻辑型(值 interface{}, 默认值 bool) bool

C类型_安全到逻辑型 将任意类型的值转换为 bool,转换失败时返回默认值。

参数:

  • 值: 待转换的值
  • 默认值: 转换失败时返回的默认布尔值

返回:

  • bool: 转换后的布尔值或默认值

func C类型_进制转换

func C类型_进制转换(文本 string, 进制 int) (int64, error)

C类型_进制转换 将字符串按指定进制转换为 int64。 如 "ff" 按16进制 → 255,"1010" 按2进制 → 10。

参数:

  • 文本: 待转换的字符串
  • 进制: 进制(2/8/10/16)

返回:

  • int64: 转换后的整数值
  • error: 转换失败时返回错误

func Difference

func Difference(a, b []int) []int

Difference calculates the difference set between two integer slices (elements in a but not in b).

Parameters:

  • a: first slice
  • b: second slice

Returns:

  • []int: difference set result

Example:

a := []int{1, 2, 3, 4, 5}
b := []int{3, 4, 5, 6, 7}
Difference(a, b)  // []int{1, 2}

func D到字节

func D到字节(value interface{}) byte

D到字节 将任意类型的值转换为单个字节(byte)。 如果值超出 byte 范围(0-255),会进行截断处理。

参数:

  • value: 待转换的值

返回:

  • byte: 转换后的字节值

func D到字节集

func D到字节集(value interface{}) []byte

D到字节集 将任意类型的值转换为字节切片([]byte)。 内部使用 gconv.Bytes 进行转换,支持字符串、整数、浮点数等基本类型。

参数:

  • value: 待转换的值,支持 string/int/float/bool 等基本类型

返回:

  • []byte: 转换后的字节切片

func D到数值

func D到数值(value interface{}) float64

D到数值 将任意类型的值转换为 float64 类型。 字符串 "3.14" → 3.14,整数 42 → 42.0。

参数:

  • value: 待转换的值

返回:

  • float64: 转换后的浮点数值

func D到整数

func D到整数(value interface{}) int

D到整数 将任意类型的值转换为 int 类型。 字符串 "123" → 123,浮点数 3.14 → 3,布尔值 true → 1。

参数:

  • value: 待转换的值

返回:

  • int: 转换后的整数值

func D到整数64

func D到整数64(value interface{}) int64

D到整数64 将任意类型的值转换为 int64 类型。 适用于需要大整数范围的场景。

参数:

  • value: 待转换的值

返回:

  • int64: 转换后的 64 位整数值

func D到文本

func D到文本(value interface{}) string

D到文本 将任意类型的值转换为字符串。 整数 123 → "123",浮点数 3.14 → "3.14",布尔值 true → "true"。

参数:

  • value: 待转换的值

返回:

  • string: 转换后的字符串

func D到文本数组

func D到文本数组(通用型变量 interface{}) []string

D到文本数组 将通用型变量(interface{})转换为字符串数组。 支持数组、切片类型的元素逐一转换;非数组类型作为单元素数组返回。 使用反射(reflect)实现类型判断和元素提取。

参数:

  • 通用型变量: 待转换的值,支持 []string、[]int 等数组/切片类型

返回:

  • []string: 转换后的字符串数组

func D到结构体

func D到结构体(待转换的参数 interface{}, 结构体指针 interface{}) error

D到结构体 将通用类型(如 Map、JSON 字符串)转换为指定的结构体。 内部使用 gconv.Struct,支持 map、JSON 字符串等作为输入源。 结构体字段可通过 tag(如 json/c/gconv)指定映射名称。

参数:

  • 待转换的参数: 源数据,支持 map、JSON 字符串等
  • 结构体指针: 目标结构体的指针,转换结果将写入该结构体

返回:

  • error: 转换失败时返回错误信息

func D多项选择

func D多项选择[T any](index int, arr []T, 默认值 T) T

D多项选择 泛型多项选择器,根据索引从数组中选取对应元素。 索引从 0 开始,越界时返回默认值。

类型参数:

  • T: 任意类型

参数:

  • index: 选择的索引位置(从 0 开始)
  • arr: 候选值数组
  • 默认值: 索引越界时返回的默认值

返回:

  • T: 选中的值或默认值

示例:

D多项选择(1, []string{"a","b","c"}, "x")  // "b"
D多项选择(5, []int{1,2,3}, 0)              // 0(越界返回默认值)

func D定时_停止

func D定时_停止(调度器 *cron.Cron)

D定时_停止 停止调度器,不再执行定时任务。

参数:

  • 调度器: cron 调度器实例

func D定时_创建

func D定时_创建() *cron.Cron

D定时_创建 创建一个新的 cron 定时任务调度器。 支持标准 cron 表达式和秒级 cron 表达式。

返回:

  • *cron.Cron: cron 调度器实例

func D定时_取任务列表

func D定时_取任务列表(调度器 *cron.Cron) []cron.Entry

D定时_取任务列表 获取调度器中所有已注册的任务。

参数:

  • 调度器: cron 调度器实例

返回:

  • []cron.Entry: 任务条目列表

func D定时_启动

func D定时_启动(调度器 *cron.Cron)

D定时_启动 启动调度器,开始执行所有已添加的定时任务。 调度器会在后台 goroutine 中运行。

参数:

  • 调度器: cron 调度器实例

func D定时_添加任务

func D定时_添加任务(调度器 *cron.Cron, 表达式 string, 任务 func()) (cron.EntryID, error)

D定时_添加任务 向调度器添加定时任务。 表达式格式(秒级):秒 分 时 日 月 周 例如 "*/5 * * * * *" 表示每5秒执行一次 "0 30 9 * * *" 表示每天9:30执行

参数:

  • 调度器: cron 调度器实例
  • 表达式: cron 表达式
  • 任务: 要执行的函数

返回:

  • cron.EntryID: 任务 ID,可用于后续移除
  • error: 表达式无效时返回错误

func D定时_移除任务

func D定时_移除任务(调度器 *cron.Cron, 任务ID cron.EntryID)

D定时_移除任务 从调度器中移除指定任务。

参数:

  • 调度器: cron 调度器实例
  • 任务ID: 要移除的任务 ID

func D定时_简单执行

func D定时_简单执行(表达式 string, 任务 func()) (*cron.Cron, error)

D定时_简单执行 按指定 cron 表达式周期性执行任务。 创建调度器、添加任务、启动一条龙完成。

参数:

  • 表达式: cron 表达式(秒级),如 "*/10 * * * * *"
  • 任务: 要执行的函数

返回:

  • *cron.Cron: 调度器实例,可用于后续停止
  • error: 表达式无效时返回错误

func D数据库_事务

func D数据库_事务(引擎 *xorm.Engine, 事务函数 func(session *xorm.Session) (interface{}, error)) (interface{}, error)

D数据库_事务 执行数据库事务。 事务中的所有操作要么全部成功,要么全部回滚。

参数:

  • 引擎: xorm 引擎实例
  • 事务函数: 事务中执行的操作,接收 Session 对象

返回:

  • interface{}: 事务返回值
  • error: 事务失败时返回错误(自动回滚)

func D数据库_关闭

func D数据库_关闭(引擎 *xorm.Engine) error

D数据库_关闭 关闭数据库连接,释放资源。

参数:

  • 引擎: xorm 引擎实例

返回:

  • error: 关闭失败时返回错误

func D数据库_删除

func D数据库_删除(引擎 *xorm.Engine, 条件结构体 interface{}) (int64, error)

D数据库_删除 删除记录。 传入结构体作为删除条件,非零值字段作为 WHERE 条件。

参数:

  • 引擎: xorm 引擎实例
  • 条件结构体: 作为删除条件的结构体

返回:

  • int64: 影响的行数
  • error: 删除失败时返回错误

func D数据库_取反射类型

func D数据库_取反射类型(值 interface{}) reflect.Type

D数据库_取反射类型 辅助函数:获取 interface{} 的 reflect.Type。 用于 xorm 的泛型查询接口。

func D数据库_取表名

func D数据库_取表名(引擎 *xorm.Engine, 结构体 interface{}) string

D数据库_取表名 获取结构体对应的数据库表名。 需要结构体定义了 `xorm:"'table_name'"` 标签或遵循 xorm 命名规则。

参数:

  • 引擎: xorm 引擎实例
  • 结构体: 结构体实例

返回:

  • string: 表名

func D数据库_同步表

func D数据库_同步表(引擎 *xorm.Engine, 结构体 ...interface{}) error

D数据库_同步表 自动同步结构体到数据库表。 根据结构体定义创建或更新数据库表结构。 会自动创建不存在的表,添加不存在的列,但不会删除已有的列。

参数:

  • 引擎: xorm 引擎实例
  • 结构体: 要同步的结构体实例(可传入多个)

返回:

  • error: 同步失败时返回错误

func D数据库_执行SQL

func D数据库_执行SQL(引擎 *xorm.Engine, sql语句 string, 参数 ...interface{}) (sql.Result, error)

D数据库_执行SQL 执行原生 SQL 语句。 适用于复杂的 SQL 操作,如批量更新、多表关联等。 参数以 sqlOrArgs 形式传入,第一个参数为 SQL 语句,后续为参数值。

参数:

  • 引擎: xorm 引擎实例
  • sql语句: SQL 语句
  • 参数: SQL 中的参数值

返回:

  • sql.Result: SQL 执行结果
  • error: 执行失败时返回错误

func D数据库_插入

func D数据库_插入(引擎 *xorm.Engine, 记录 interface{}) (int64, error)

D数据库_插入 插入一条或多条记录到数据库。 传入结构体指针或结构体指针切片。

参数:

  • 引擎: xorm 引擎实例
  • 记录: 要插入的数据,结构体指针或切片

返回:

  • int64: 影响的行数
  • error: 插入失败时返回错误

func D数据库_更新

func D数据库_更新(引擎 *xorm.Engine, 记录 interface{}) (int64, error)

D数据库_更新 更新记录。 传入要更新的结构体指针,非零值字段会被更新。 建议配合 Where 条件使用,避免全表更新。

参数:

  • 引擎: xorm 引擎实例
  • 记录: 包含更新值的结构体指针

返回:

  • int64: 影响的行数
  • error: 更新失败时返回错误

func D数据库_条件更新

func D数据库_条件更新(引擎 *xorm.Engine, 记录 interface{}, 条件 string, 参数 ...interface{}) (int64, error)

D数据库_条件更新 带条件的更新记录。

参数:

  • 引擎: xorm 引擎实例
  • 记录: 包含更新值的结构体指针
  • 条件: WHERE 条件字符串
  • 参数: 条件参数值

返回:

  • int64: 影响的行数
  • error: 更新失败时返回错误

func D数据库_条件查询

func D数据库_条件查询(引擎 *xorm.Engine, 结果切片 interface{}, 条件 string, 参数 ...interface{}) error

D数据库_条件查询 带条件查询记录。 使用 SQL 条件字符串和参数进行查询。

参数:

  • 引擎: xorm 引擎实例
  • 结果切片: 存放查询结果的切片指针
  • 条件: SQL WHERE 条件,如 "age > ? AND name LIKE ?"
  • 参数: 条件中的参数值

返回:

  • error: 查询失败时返回错误

func D数据库_查询

func D数据库_查询(引擎 *xorm.Engine, 结果切片 interface{}) error

D数据库_查询 查询记录并存入结构体切片。 传入结构体切片指针,查询结果会填充到切片中。

参数:

  • 引擎: xorm 引擎实例
  • 结果切片: 存放查询结果的切片指针,如 &[]User{}

返回:

  • error: 查询失败时返回错误

func D数据库_查询单条

func D数据库_查询单条(引擎 *xorm.Engine, 记录 interface{}) (bool, error)

D数据库_查询单条 查询单条记录。 传入结构体指针,查询结果会填充到结构体中。 如果查询到多条记录,只返回第一条。

参数:

  • 引擎: xorm 引擎实例
  • 记录: 存放查询结果的结构体指针

返回:

  • bool: true 表示查到记录,false 表示未查到
  • error: 查询失败时返回错误

func D数据库_测试连接

func D数据库_测试连接(引擎 *xorm.Engine) error

D数据库_测试连接 测试数据库连接是否正常。 执行一次 Ping 操作验证连接可用性。

参数:

  • 引擎: xorm 引擎实例

返回:

  • error: 连接失败时返回错误

func D数据库_统计

func D数据库_统计(引擎 *xorm.Engine, 条件结构体 interface{}) (int64, error)

D数据库_统计 获取满足条件的记录数。

参数:

  • 引擎: xorm 引擎实例
  • 条件结构体: 作为统计条件的结构体

返回:

  • int64: 记录数
  • error: 查询失败时返回错误

func D数据库_表是否存在

func D数据库_表是否存在(引擎 *xorm.Engine, 表名 string) (bool, error)

D数据库_表是否存在 检查数据库中是否存在指定表。

参数:

  • 引擎: xorm 引擎实例
  • 表名: 表名

返回:

  • bool: true 表示表存在
  • error: 查询失败时返回错误

func D数据库_设置连接池

func D数据库_设置连接池(引擎 *xorm.Engine, 最大空闲数 int, 最大连接数 int, 最大生存时间 int)

D数据库_设置连接池 设置数据库连接池参数。 合理配置连接池可提高并发性能。

参数:

  • 引擎: xorm 引擎实例
  • 最大空闲数: 连接池最大空闲连接数
  • 最大连接数: 连接池最大连接数,0 表示不限制
  • 最大生存时间: 连接最大生存时间(秒),0 表示不限制

func D数据库_连接MySQL

func D数据库_连接MySQL(用户名 string, 密码 string, 主机地址 string, 数据库名 string) (*xorm.Engine, error)

D数据库_连接MySQL 连接 MySQL 数据库并返回引擎实例。 使用 xorm 作为 ORM 引擎,支持结构体映射和链式查询。 驱动自动注册 github.com/go-sql-driver/mysql。

参数:

  • 用户名: 数据库用户名
  • 密码: 数据库密码
  • 主机地址: 数据库地址,如 "127.0.0.1:3306"
  • 数据库名: 要连接的数据库名称

返回:

  • *xorm.Engine: xorm 引擎实例
  • error: 连接失败时返回错误

func D数据库_连接SQLite

func D数据库_连接SQLite(文件路径 string) (*xorm.Engine, error)

D数据库_连接SQLite 连接 SQLite 数据库并返回引擎实例。 文件不存在时自动创建。

参数:

  • 文件路径: SQLite 数据库文件路径

返回:

  • *xorm.Engine: xorm 引擎实例
  • error: 连接失败时返回错误

func E

func E() float64

E returns the value of Euler's number (e).

Returns:

  • float64: e ≈ 2.718281828459045

func ExponentialBackoffRetry

func ExponentialBackoffRetry[T any](fn func() (T, error), maxRetries int, baseInterval, maxInterval time.Duration) (T, error)

ExponentialBackoffRetry implements retry with exponential backoff strategy.

Type Parameters:

  • T: return value type

Parameters:

  • fn: function to execute, returns value and error
  • maxRetries: maximum number of retries
  • baseInterval: base interval time
  • maxInterval: maximum interval (prevents infinite growth)

Returns:

  • T: return value on success
  • error: last error if all retries fail

Example:

result, err := ExponentialBackoffRetry(func() (string, error) {
	return "success", nil
}, 5, time.Second, time.Minute)

func ExtractKeys

func ExtractKeys[K comparable, V any](maps ...map[K]V) map[K]struct{}

ExtractKeys extracts all unique keys from multiple Maps.

Type Parameters:

  • K: key type (must be comparable)
  • V: value type

Parameters:

  • maps: list of Maps to process

Returns:

  • map[K]struct{}: set of keys (represented with empty struct)

Example:

m1 := map[string]int{"a": 1}
m2 := map[string]int{"b": 2}
ExtractKeys(m1, m2)  // map[string]struct{}{"a": {}, "b": {}}

func ExtractValues

func ExtractValues[K comparable, V comparable](maps ...map[K]V) map[V]struct{}

ExtractValues extracts all unique values from multiple Maps.

Type Parameters:

  • K: key type
  • V: value type (must be comparable)

Parameters:

  • maps: list of Maps to process

Returns:

  • map[V]struct{}: set of values

Example:

m1 := map[string]int{"a": 1}
m2 := map[string]int{"b": 2}
ExtractValues(m1, m2)  // map[int]struct{}{1: {}, 2: {}}

func E邮件_发送

func E邮件_发送(服务器地址 string, 发件人邮箱 string, 密码 string, 收件人 string, 主题 string, 正文 string, HTML正文 string, 附件路径 []string) error

E邮件_发送 发送邮件,支持 HTML 正文和附件。 使用 SMTP 协议发送,支持 TLS 加密连接。

参数:

  • 服务器地址: SMTP 服务器地址,如 "smtp.qq.com:587"
  • 发件人邮箱: 发件人邮箱地址
  • 密码: 发件人邮箱的授权码(非登录密码)
  • 收件人: 收件人邮箱地址,多个用逗号分隔
  • 主题: 邮件主题
  • 正文: 邮件正文(纯文本)
  • HTML正文: HTML 格式的邮件正文,为空时使用纯文本正文
  • 附件路径: 附件文件路径列表,无附件传 nil

返回:

  • error: 发送失败时返回错误

func E邮件_发送TLS

func E邮件_发送TLS(服务器地址 string, 发件人邮箱 string, 密码 string, 收件人 string, 主题 string, 正文 string, HTML正文 string, 附件路径 []string) error

E邮件_发送TLS 使用 TLS 加密连接发送邮件。 适用于 465 端口的 SMTP 服务器。

参数:

  • 服务器地址: SMTP 服务器地址,如 "smtp.qq.com:465"
  • 发件人邮箱: 发件人邮箱地址
  • 密码: 发件人邮箱的授权码
  • 收件人: 收件人邮箱地址,多个用逗号分隔
  • 主题: 邮件主题
  • 正文: 邮件正文(纯文本)
  • HTML正文: HTML 格式的邮件正文
  • 附件路径: 附件文件路径列表

返回:

  • error: 发送失败时返回错误

func E邮件_发送简单邮件

func E邮件_发送简单邮件(服务器地址 string, 发件人邮箱 string, 密码 string, 收件人 string, 主题 string, 正文 string) error

E邮件_发送简单邮件 发送一封简单的纯文本邮件,无附件。

参数:

  • 服务器地址: SMTP 服务器地址,如 "smtp.qq.com:587"
  • 发件人邮箱: 发件人邮箱地址
  • 密码: 发件人邮箱的授权码
  • 收件人: 收件人邮箱地址
  • 主题: 邮件主题
  • 正文: 邮件正文

返回:

  • error: 发送失败时返回错误

func F_分割文本

func F_分割文本(原文本 string, 分割符 string) []string

F_分割文本 按指定分隔符将文本分割为字符串数组。 等同于 strings.Split。

参数:

  • 原文本: 待分割的文本
  • 分割符: 用作分割的分隔符

返回:

  • []string: 分割后的字符串数组

func F_删首尾空

func F_删首尾空(text string) string

F_删首尾空 去除文本首尾的空白字符(空格、制表符、换行等)。 等同于 strings.TrimSpace。

参数:

  • text: 源文本

返回:

  • string: 去除首尾空白后的文本

func F_加入成员

func F_加入成员(数组 []string, 成员 string) []string

F_加入成员 向字符串数组追加一个成员,返回新数组。 等同于 append(数组, 成员)。

参数:

  • 数组: 原字符串数组
  • 成员: 要追加的字符串

返回:

  • []string: 追加后的新数组

func F_取文本右边

func F_取文本右边(text string, n int) string

F_取文本右边 取文本右侧指定字节数的子串。 注意:按字节截取,中文可能被截断。中文安全截取请用 W文本_取右边。

参数:

  • text: 源文本
  • n: 截取的字节数

返回:

  • string: 右侧 n 个字节的文本;n 超过长度时返回原文本

func F_取文本左边

func F_取文本左边(text string, n int) string

F_取文本左边 取文本左侧指定字节数的子串。 注意:按字节截取,中文可能被截断。中文安全截取请用 W文本_取左边。

参数:

  • text: 源文本
  • n: 截取的字节数

返回:

  • string: 左侧 n 个字节的文本;n 超过长度时返回原文本

func F_取文本长度

func F_取文本长度(text string) int

F_取文本长度 获取文本的字节长度。 注意:中文在 UTF-8 编码下占 3 个字节。如需字符数请用 W文本_取长度。

参数:

  • text: 源文本

返回:

  • int: 字节长度

func F_取随机数

func F_取随机数(min, max int) int

F_取随机数 生成指定范围内的随机整数,包含边界值 [min, max]。

参数:

  • min: 最小值(包含)
  • max: 最大值(包含)

返回:

  • int: [min, max] 范围内的随机整数

func F_选择

func F_选择(逻辑 bool, 真返回参数, 假返回参数 interface{}) interface{}

F_选择 三元选择器(非泛型版),根据逻辑值返回两个参数中的一个。 推荐使用泛型版 S三元 替代,类型更安全。

参数:

  • 逻辑: 条件值,true 返回真返回参数,false 返回假返回参数
  • 真返回参数: 条件为真时返回的值
  • 假返回参数: 条件为假时返回的值

返回:

  • interface{}: 选中的值

func Factorial

func Factorial(n int) int64

Factorial calculates the factorial of a given integer.

Parameters:

  • n: integer to calculate factorial (non-negative)

Returns:

  • int64: n!; 0 if n < 0

Example:

Factorial(5)  // 120

func Fibonacci

func Fibonacci(n int) int64

Fibonacci calculates the nth Fibonacci number.

Parameters:

  • n: position in Fibonacci sequence (starting from 0)

Returns:

  • int64: nth Fibonacci number

Example:

Fibonacci(0)  // 0
Fibonacci(1)  // 1
Fibonacci(10) // 55

func Filter

func Filter[T any](slice []T, condition func(T) bool) []T

Filter filters slice elements based on condition function.

Type Parameters:

  • T: any type

Parameters:

  • slice: slice to filter
  • condition: filter condition function, returns true to keep element

Returns:

  • []T: filtered slice

Example:

nums := []int{1, 2, 3, 4, 5, 6}
Filter(nums, func(n int) bool { return n%2 == 0 })
// []int{2, 4, 6}

func FilterMap

func FilterMap[K comparable, V any](m map[K]V, condition func(K, V) bool) map[K]V

FilterMap filters Map key-value pairs based on condition function.

Type Parameters:

  • K: key type (must be comparable)
  • V: value type

Parameters:

  • m: Map to filter
  • condition: filter condition function, returns true to keep key-value pair

Returns:

  • map[K]V: filtered Map

Example:

m := map[string]int{"a": 1, "b": 2, "c": 3}
FilterMap(m, func(k string, v int) bool { return v > 1 })
// map[string]int{"b": 2, "c": 3}

func FirstLetterToUpper

func FirstLetterToUpper(s string) string

FirstLetterToUpper converts the first letter of a string to uppercase.

Parameters:

  • s: string to process

Returns:

  • string: string with first letter uppercase

Example:

FirstLetterToUpper("hello")  // "Hello"

func Float64乘Float64

func Float64乘Float64(值1 float64, 值2 float64) float64

Float64乘Float64 将两个 float64 相乘,使用 decimal 库防止精度丢失。

参数:

  • 值1: 第一个浮点乘数
  • 值2: 第二个浮点乘数

返回:

  • float64: 乘积结果

func Float64乘int64

func Float64乘int64(值1 float64, 值2 int64) float64

Float64乘int64 将 float64 与 int64 相乘,使用 decimal 库防止精度丢失。

参数:

  • 值1: 浮点乘数
  • 值2: 整数乘数

返回:

  • float64: 乘积结果

func Float64从文本

func Float64从文本(值 string, 保留小数点多少位 int) float64

Float64从文本 将字符串转换为 float64,并按指定小数位四舍五入。 使用 decimal 库确保精度,转换失败返回 0。

参数:

  • 值: 待转换的字符串
  • 保留小数点多少位: 小数点后保留的位数

返回:

  • float64: 转换后的浮点数;解析失败返回 0

func Float64减float64

func Float64减float64(值1 float64, 值2 float64, 保留长度 int32) float64

Float64减float64 两个 float64 相减,使用 decimal 库防止精度丢失。 结果按指定保留长度进行四舍五入。

参数:

  • 值1: 被减数
  • 值2: 减数
  • 保留长度: 小数点后保留的位数

返回:

  • float64: 减法结果(四舍五入到指定小数位)

func Float64到文本

func Float64到文本(值 float64, 保留小数点多少位 int) string

Float64到文本 将 float64 转换为指定小数位数的字符串。 使用 strconv.FormatFloat 进行格式化。

参数:

  • 值: 待转换的浮点数
  • 保留小数点多少位: 小数点后保留的位数

返回:

  • string: 格式化后的浮点数字符串

示例:

Float64到文本(3.14159, 2)  // "3.14"

func Float64加float64

func Float64加float64(值1 float64, 值2 float64, 保留长度 int32) float64

Float64加float64 两个 float64 相加,使用 decimal 库防止精度丢失。 结果按指定保留长度进行四舍五入。

参数:

  • 值1: 第一个加数
  • 值2: 第二个加数
  • 保留长度: 小数点后保留的位数

返回:

  • float64: 加法结果(四舍五入到指定小数位)

func Float64取绝对值

func Float64取绝对值(值 float64) float64

Float64取绝对值 返回浮点数的绝对值,使用 decimal 库防止精度丢失。 负数乘以 -1 转为正数,正数和零直接返回。

参数:

  • 值: 输入的浮点数

返回:

  • float64: 绝对值

func Float64取负值

func Float64取负值(值 float64) float64

Float64取负值 返回浮点数的负值,使用 decimal 库防止精度丢失。 正数取反为负数,零和负数原样返回。

参数:

  • 值: 输入的浮点数

返回:

  • float64: 负值结果

func Float64除float64

func Float64除float64(值1 float64, 值2 float64, 保留长度 int32) float64

Float64除float64 将两个 float64 相除,使用 decimal 库防止精度丢失。 结果按指定保留长度进行四舍五入。

参数:

  • 值1: 被除数
  • 值2: 除数
  • 保留长度: 小数点后保留的位数

返回:

  • float64: 除法结果(四舍五入到指定小数位)

func Float64除int64

func Float64除int64(值1 float64, 值2 int64, 保留长度 int32) float64

Float64除int64 将 float64 除以 int64,使用 decimal 库防止精度丢失。 结果按指定保留长度进行四舍五入。

参数:

  • 值1: 被除数
  • 值2: 除数
  • 保留长度: 小数点后保留的位数

返回:

  • float64: 除法结果(四舍五入到指定小数位)

func FloatApproxEqual

func FloatApproxEqual(a, b, delta float64) bool

FloatApproxEqual 检查两个浮点数是否在指定误差范围内相等。

Parameters:

  • a: 第一个浮点数
  • b: 第二个浮点数
  • delta: 允许的误差范围

Returns:

  • bool: 在误差范围内相等返回 true

Example:

FloatApproxEqual(3.14159, 3.14160, 0.0001)  // true
FloatApproxEqual(3.14159, 3.14160, 0.00001) // false

func F文件监控_关闭

func F文件监控_关闭(监控器 *fsnotify.Watcher)

F文件监控_关闭 关闭监控器,释放资源。 关闭后监控器不再接收任何事件。

参数:

  • 监控器: 监控器对象指针

func F文件监控_创建

func F文件监控_创建() (*fsnotify.Watcher, error)

F文件监控_创建 创建一个新的文件系统监控器。 基于 fsnotify 库实现,可监控文件和目录的创建、修改、删除、重命名事件。 创建后需调用 F文件监控_添加目录 或 F文件监控_添加文件 添加监控目标, 再调用 F文件监控_开始 启动事件监听。

返回:

  • *fsnotify.Watcher: 监控器对象指针
  • error: 创建失败时返回错误

func F文件监控_取事件通道

func F文件监控_取事件通道(监控器 *fsnotify.Watcher) <-chan fsnotify.Event

F文件监控_取事件通道 获取监控器的事件通道。 通过此通道接收文件系统变化事件,用于自定义事件处理逻辑。

参数:

  • 监控器: 监控器对象指针

返回:

  • <-chan fsnotify.Event: 只读事件通道

func F文件监控_取错误通道

func F文件监控_取错误通道(监控器 *fsnotify.Watcher) <-chan error

F文件监控_取错误通道 获取监控器的错误通道。 通过此通道接收监控过程中发生的错误。

参数:

  • 监控器: 监控器对象指针

返回:

  • <-chan error: 只读错误通道

func F文件监控_开始

func F文件监控_开始(监控器 *fsnotify.Watcher, 回调函数 func(event fsnotify.Event))

F文件监控_开始 开始监听文件系统事件。 阻塞式监听,当文件发生变化时调用回调函数。 回调函数接收事件对象,包含事件类型和文件路径。 常见事件类型: Create(创建), Write(修改), Remove(删除), Rename(重命名), Chmod(权限变更)。

参数:

  • 监控器: 监控器对象指针
  • 回调函数: 事件回调,参数为 fsnotify.Event

func F文件监控_添加文件

func F文件监控_添加文件(监控器 *fsnotify.Watcher, 文件路径 string) error

F文件监控_添加文件 添加一个文件到监控列表。

参数:

  • 监控器: 监控器对象指针
  • 文件路径: 要监控的文件路径

返回:

  • error: 添加失败时返回错误

func F文件监控_添加目录

func F文件监控_添加目录(监控器 *fsnotify.Watcher, 目录路径 string) error

F文件监控_添加目录 添加一个目录到监控列表。 监控目录下的所有文件和子目录的变化。

参数:

  • 监控器: 监控器对象指针
  • 目录路径: 要监控的目录路径

返回:

  • error: 添加失败时返回错误

func F文件监控_监控目录变化

func F文件监控_监控目录变化(目录路径 string, 回调函数 func(event fsnotify.Event)) (func(), error)

F文件监控_监控目录变化 便捷函数:监控指定目录的文件变化。 自动创建监控器、添加目录,并在检测到变化时调用回调。 返回停止函数,调用即可停止监控。

参数:

  • 目录路径: 要监控的目录路径
  • 回调函数: 文件变化时的回调函数

返回:

  • func(): 停止监控的函数
  • error: 创建监控器或添加目录失败时返回错误

func F文件监控_移除

func F文件监控_移除(监控器 *fsnotify.Watcher, 路径 string) error

F文件监控_移除 从监控列表中移除一个文件或目录。

参数:

  • 监控器: 监控器对象指针
  • 路径: 要移除的文件或目录路径

返回:

  • error: 移除失败时返回错误

func GenericDeduplicate

func GenericDeduplicate[T comparable](slice []T) []T

GenericDeduplicate generic version of deduplication function for any comparable type.

Type Parameters:

  • T: comparable type

Parameters:

  • slice: slice to deduplicate

Returns:

  • []T: deduplicated slice

Example:

strings := []string{"a", "b", "a", "c"}
GenericDeduplicate(strings)  // []string{"a", "b", "c"}

func GenericReverse

func GenericReverse[T any](slice []T)

GenericReverse generic version of array reverse function.

Type Parameters:

  • T: any type

Parameters:

  • slice: slice to reverse

Example:

strings := []string{"a", "b", "c"}
GenericReverse(strings)
// strings = []string{"c", "b", "a"}

func GenericSort

func GenericSort[T any](slice []T, less func(a, b T) bool)

GenericSort generic sort function with custom comparison rule.

Type Parameters:

  • T: any type

Parameters:

  • slice: slice to sort
  • less: comparison function, returns true if a should come before b

Example:

type Person struct {
	Name string
	Age  int
}
people := []Person{{"Alice", 30}, {"Bob", 25}}
GenericSort(people, func(a, b Person) bool { return a.Age < b.Age })

func GetKeys

func GetKeys[K comparable, V any](m map[K]V) []K

GetKeys retrieves all keys from a Map.

Type Parameters:

  • K: key type (must be comparable)
  • V: value type

Parameters:

  • m: Map to operate on

Returns:

  • []K: slice of all keys

Example:

m := map[string]int{"a": 1, "b": 2}
GetKeys(m)  // []string{"a", "b"}

func GetValues

func GetValues[K comparable, V any](m map[K]V) []V

GetValues retrieves all values from a Map.

Type Parameters:

  • K: key type
  • V: value type

Parameters:

  • m: Map to operate on

Returns:

  • []V: slice of all values

Example:

m := map[string]int{"a": 1, "b": 2}
GetValues(m)  // []int{1, 2}

func GreaterOrEqual

func GreaterOrEqual[T constraints.Ordered](left, right T) bool

GreaterOrEqual 检查 left 是否大于或等于 right。

Type Parameters:

  • T: 支持比较运算的类型 (numeric types)

Parameters:

  • left: 左值
  • right: 右值

Returns:

  • bool: left >= right 返回 true

Example:

GreaterOrEqual(3, 2)    // true
GreaterOrEqual(2, 2)    // true
GreaterOrEqual(1, 2)    // false

func GreaterThan

func GreaterThan[T constraints.Ordered](left, right T) bool

GreaterThan 检查 left 是否大于 right。

Type Parameters:

  • T: 支持比较运算的类型 (numeric types)

Parameters:

  • left: 左值
  • right: 右值

Returns:

  • bool: left > right 返回 true

Example:

GreaterThan(3, 2)    // true
GreaterThan(2, 2)    // false

func G协程池_创建

func G协程池_创建(池大小 int) (*ants.Pool, error)

G协程池_创建 创建指定大小的 goroutine 池。 池满时新提交的任务会阻塞等待空闲 worker。

参数:

  • 池大小: worker 数量上限

返回:

  • *ants.Pool: 协程池实例
  • error: 创建失败时返回错误

func G协程池_创建带选项

func G协程池_创建带选项(池大小 int, 选项 ...ants.Option) (*ants.Pool, error)

G协程池_创建带选项 创建带自定义选项的 goroutine 池。

参数:

  • 池大小: worker 数量上限
  • 选项: ants.Option 列表,如 ants.WithPreAlloc(true)

返回:

  • *ants.Pool: 协程池实例
  • error: 创建失败时返回错误

func G协程池_取容量

func G协程池_取容量(池 *ants.Pool) int

G协程池_取容量 获取协程池的容量(最大 worker 数)。

参数:

  • 池: 协程池实例

返回:

  • int: 池容量

func G协程池_取空闲数量

func G协程池_取空闲数量(池 *ants.Pool) int

G协程池_取空闲数量 获取当前空闲的 worker 数量。

参数:

  • 池: 协程池实例

返回:

  • int: 空闲的 worker 数量

func G协程池_取等待数量

func G协程池_取等待数量(池 *ants.Pool) int

G协程池_取等待数量 获取正在等待执行的 任务 数量。

参数:

  • 池: 协程池实例

返回:

  • int: 等待中的 任务 数量

func G协程池_取运行中数量

func G协程池_取运行中数量(池 *ants.Pool) int

G协程池_取运行中数量 获取当前正在执行任务的 worker 数量。

参数:

  • 池: 协程池实例

返回:

  • int: 运行中的 worker 数量

func G协程池_提交任务

func G协程池_提交任务(池 *ants.Pool, 任务 func()) error

G协程池_提交任务 向协程池提交一个任务。 如果池已满,会阻塞等待有空闲 worker。

参数:

  • 池: 协程池实例
  • 任务: 要执行的函数

返回:

  • error: 提交失败时返回错误(如池已关闭)

func G协程池_调整大小

func G协程池_调整大小(池 *ants.Pool, 新大小 int)

G协程池_调整大小 动态调整协程池的容量。 新容量可以大于或小于当前容量。

参数:

  • 池: 协程池实例
  • 新大小: 新的池容量

func G协程池_释放

func G协程池_释放(池 *ants.Pool)

G协程池_释放 释放协程池,停止所有 worker 并清理资源。 释放后不能再提交任务。

参数:

  • 池: 协程池实例

func G协程池_预分配

func G协程池_预分配(池大小 int) (*ants.Pool, error)

G协程池_预分配 创建预分配 worker 的协程池。 预分配模式下,worker 在创建池时即初始化,减少首次任务延迟。

参数:

  • 池大小: worker 数量上限

返回:

  • *ants.Pool: 协程池实例
  • error: 创建失败时返回错误

func G格式化_JSON

func G格式化_JSON(data string) string

G格式化_JSON 将 JSON 字符串进行缩进格式化,便于阅读。 使用 4 空格缩进,如果格式化失败则返回原始字符串。

参数:

  • data: 待格式化的 JSON 字符串

返回:

  • string: 格式化后的 JSON 文本;失败时返回原字符串

func G格式化文本

func G格式化文本(str string, 参数 ...interface{}) string

G格式化文本 使用格式化字符串生成文本,等同于 fmt.Sprintf。 支持所有 fmt 包的格式化动词(%d、%s、%v 等)。

参数:

  • str: 格式化字符串模板
  • 参数: 格式化参数,可变数量

返回:

  • string: 格式化后的文本

示例:

G格式化文本("姓名:%s,年龄:%d", "张三", 25)  // "姓名:张三,年龄:25"

func HHook_初始化

func HHook_初始化() error

func HHook_卸载

func HHook_卸载() error

func HHook_卸载Hook

func HHook_卸载Hook(目标地址 uintptr) error

func HHook_取状态文本

func HHook_取状态文本(状态码 int) string

HHook_取状态文本 将状态码转换为中文描述文本。

func HHook_启用Hook

func HHook_启用Hook(目标地址 uintptr) error

func HHook_启用全部Hook

func HHook_启用全部Hook() error

func HHook_安装ApiHook

func HHook_安装ApiHook(模块名, 函数名 string, 回调地址 uintptr) (uintptr, error)

HHook_安装ApiHook 通过模块名和函数名为指定 API 安装钩子。

参数:

  • 模块名: DLL 模块名称,如 "kernel32.dll"
  • 函数名: 导出函数名称,如 "MessageBoxW"
  • 回调地址: 回调函数的地址(uintptr)

返回:

  • uintptr: 原始函数地址(trampoline),用于调用原始函数
  • error: 错误信息

func HHook_安装ApiHookEx

func HHook_安装ApiHookEx(模块名, 函数名 string, 回调地址 uintptr) (原地址, 目标地址 uintptr, err error)

HHook_安装ApiHookEx 通过模块名和函数名为指定 API 安装钩子(扩展版)。

参数:

  • 模块名: DLL 模块名称
  • 函数名: 导出函数名称
  • 回调地址: 回调函数的地址(uintptr)

返回:

  • uintptr: 原始函数地址(trampoline)
  • uintptr: 目标函数地址
  • error: 错误信息

func HHook_安装Hook

func HHook_安装Hook(目标地址, 回调地址 uintptr) (uintptr, error)

HHook_安装Hook 为目标函数安装钩子,在禁用状态下创建。

参数:

  • 目标地址: 目标函数的地址(uintptr)
  • 回调地址: 回调函数的地址(uintptr),目标函数被调用时将跳转到此地址

返回:

  • uintptr: 原始函数地址(trampoline),用于调用原始函数
  • error: 错误信息

func HHook_应用排队

func HHook_应用排队() error

func HHook_排队启用Hook

func HHook_排队启用Hook(目标地址 uintptr) error

func HHook_排队禁用Hook

func HHook_排队禁用Hook(目标地址 uintptr) error

func HHook_禁用Hook

func HHook_禁用Hook(目标地址 uintptr) error

func HHook_禁用全部Hook

func HHook_禁用全部Hook() error

func HasPrefix

func HasPrefix(s, prefix string) bool

HasPrefix checks if a string starts with a specified prefix.

Parameters:

  • s: source string
  • prefix: prefix to check

Returns:

  • bool: true if starts with prefix, false otherwise

Example:

HasPrefix("hello.txt", ".txt")  // false
HasPrefix("hello.txt", "hello") // true

func HasSuffix

func HasSuffix(s, suffix string) bool

HasSuffix checks if a string ends with a specified suffix.

Parameters:

  • s: source string
  • suffix: suffix to check

Returns:

  • bool: true if ends with suffix, false otherwise

Example:

HasSuffix("hello.txt", ".txt")  // true
HasSuffix("hello.txt", "hello") // false

func H客户端_Delete

func H客户端_Delete(网址 string) (*resty.Response, error)

H客户端_Delete 发送 HTTP DELETE 请求。

参数:

  • 网址: 请求的 URL 地址

返回:

  • *resty.Response: 响应对象
  • error: 请求失败时返回错误

func H客户端_Get

func H客户端_Get(网址 string) (*resty.Response, error)

H客户端_Get 发送 HTTP GET 请求。

参数:

  • 网址: 请求的 URL 地址

返回:

  • *resty.Response: 响应对象,包含状态码、响应体等信息
  • error: 请求失败时返回错误

func H客户端_Post

func H客户端_Post(网址 string, 数据 interface{}) (*resty.Response, error)

H客户端_Post 发送 HTTP POST 请求(JSON 格式)。 自动将数据序列化为 JSON 并设置 Content-Type 头。

参数:

  • 网址: 请求的 URL 地址
  • 数据: 要发送的数据,会自动序列化为 JSON

返回:

  • *resty.Response: 响应对象
  • error: 请求失败时返回错误

func H客户端_Put

func H客户端_Put(网址 string, 数据 interface{}) (*resty.Response, error)

H客户端_Put 发送 HTTP PUT 请求(JSON 格式)。

参数:

  • 网址: 请求的 URL 地址
  • 数据: 要发送的数据

返回:

  • *resty.Response: 响应对象
  • error: 请求失败时返回错误

func H客户端_下载文件

func H客户端_下载文件(网址 string, 保存路径 string) error

H客户端_下载文件 下载文件到指定路径。

参数:

  • 网址: 文件下载 URL
  • 保存路径: 本地保存路径

返回:

  • error: 下载失败时返回错误

func H客户端_创建

func H客户端_创建() *resty.Request

H客户端_创建 创建一个新的 HTTP 客户端实例。 基于 resty 库实现,提供链式调用风格的 HTTP 请求 API。 支持 JSON/XML 自动序列化、请求重试、代理等高级功能。

返回:

  • *resty.Request: 可链式调用的请求对象

func H客户端_取文本

func H客户端_取文本(网址 string) (string, error)

H客户端_取文本 发送 GET 请求并返回响应体文本。

参数:

  • 网址: 请求的 URL 地址

返回:

  • string: 响应体文本
  • error: 请求失败时返回错误

func H客户端_带参数发送

func H客户端_带参数发送(网址 string, 参数 map[string]string) (*resty.Response, error)

H客户端_带参数发送 带查询参数发送 GET 请求。

参数:

  • 网址: 请求的 URL 地址
  • 参数: URL 查询参数键值对

返回:

  • *resty.Response: 响应对象
  • error: 请求失败时返回错误

func H客户端_带请求头发送

func H客户端_带请求头发送(网址 string, 请求头 map[string]string) (*resty.Response, error)

H客户端_带请求头发送 带自定义请求头发送 GET 请求。

参数:

  • 网址: 请求的 URL 地址
  • 请求头: HTTP 请求头键值对

返回:

  • *resty.Response: 响应对象
  • error: 请求失败时返回错误

func H客户端_表单提交

func H客户端_表单提交(网址 string, 表单数据 map[string]string) (*resty.Response, error)

H客户端_表单提交 以表单形式提交 POST 请求(application/x-www-form-urlencoded)。

参数:

  • 网址: 请求的 URL 地址
  • 表单数据: 表单字段键值对

返回:

  • *resty.Response: 响应对象
  • error: 请求失败时返回错误

func H客户端_设置代理

func H客户端_设置代理(代理地址 string) *resty.Client

H客户端_设置代理 创建带代理设置的 HTTP 客户端。

参数:

返回:

  • *resty.Client: 配置好代理的客户端实例

func H客户端_设置超时

func H客户端_设置超时(超时秒数 int) *resty.Client

H客户端_设置超时 创建带超时设置的 HTTP 客户端。 超时后请求会自动取消并返回错误。

参数:

  • 超时秒数: 请求超时时间(秒)

返回:

  • *resty.Client: 配置好超时的客户端实例

func H汇编_ADDR

func H汇编_ADDR(v int32)

func H汇编_ADD_EAX

func H汇编_ADD_EAX(v int32)

func H汇编_ADD_EAX_DWORD_PTR

func H汇编_ADD_EAX_DWORD_PTR(addr int32)

func H汇编_ADD_EAX_EDX

func H汇编_ADD_EAX_EDX()

func H汇编_ADD_EBP_DWORD_PTR

func H汇编_ADD_EBP_DWORD_PTR(addr int32)

func H汇编_ADD_EBX

func H汇编_ADD_EBX(v int32)

func H汇编_ADD_EBX_DWORD_PTR

func H汇编_ADD_EBX_DWORD_PTR(addr int32)

func H汇编_ADD_EBX_EAX

func H汇编_ADD_EBX_EAX()

func H汇编_ADD_ECX

func H汇编_ADD_ECX(v int32)

func H汇编_ADD_EDX

func H汇编_ADD_EDX(v int32)

func H汇编_ADD_ESI

func H汇编_ADD_ESI(v int32)

func H汇编_ADD_ESP

func H汇编_ADD_ESP(v int32)

func H汇编_CALL

func H汇编_CALL(addr int32)

func H汇编_CALL_DWORD_PTR

func H汇编_CALL_DWORD_PTR(addr int32)

func H汇编_CALL_DWORD_PTR_EAX

func H汇编_CALL_DWORD_PTR_EAX()

func H汇编_CALL_DWORD_PTR_EBX

func H汇编_CALL_DWORD_PTR_EBX()

func H汇编_CALL_EAX

func H汇编_CALL_EAX()

func H汇编_CALL_EBP

func H汇编_CALL_EBP()

func H汇编_CALL_EBX

func H汇编_CALL_EBX()

func H汇编_CALL_ECX

func H汇编_CALL_ECX()

func H汇编_CALL_EDI

func H汇编_CALL_EDI()

func H汇编_CALL_EDX

func H汇编_CALL_EDX()

func H汇编_CALL_ESI

func H汇编_CALL_ESI()

func H汇编_CALL_ESP

func H汇编_CALL_ESP()

func H汇编_CMP_DWORD_PTR_EAX

func H汇编_CMP_DWORD_PTR_EAX(addr int32)

func H汇编_CMP_EAX

func H汇编_CMP_EAX(v int32)

func H汇编_CMP_EAX_DWORD_PTR

func H汇编_CMP_EAX_DWORD_PTR(addr int32)

func H汇编_CMP_EAX_EDX

func H汇编_CMP_EAX_EDX()

func H汇编_DEC_EAX

func H汇编_DEC_EAX()

func H汇编_DEC_EBX

func H汇编_DEC_EBX()

func H汇编_DEC_ECX

func H汇编_DEC_ECX()

func H汇编_DEC_EDX

func H汇编_DEC_EDX()

func H汇编_IDIV_EAX

func H汇编_IDIV_EAX()

func H汇编_IDIV_EBX

func H汇编_IDIV_EBX()

func H汇编_IDIV_ECX

func H汇编_IDIV_ECX()

func H汇编_IDIV_EDX

func H汇编_IDIV_EDX()

func H汇编_IMULB_EAX

func H汇编_IMULB_EAX(v int32)

func H汇编_IMUL_EAX

func H汇编_IMUL_EAX(v int8)

func H汇编_IMUL_EAX_EDX

func H汇编_IMUL_EAX_EDX()

func H汇编_INC_DWORD_PTR_EAX

func H汇编_INC_DWORD_PTR_EAX()

func H汇编_INC_DWORD_PTR_EBX

func H汇编_INC_DWORD_PTR_EBX()

func H汇编_INC_DWORD_PTR_ECX

func H汇编_INC_DWORD_PTR_ECX()

func H汇编_INC_DWORD_PTR_EDX

func H汇编_INC_DWORD_PTR_EDX()

func H汇编_INC_EAX

func H汇编_INC_EAX()

func H汇编_INC_EBX

func H汇编_INC_EBX()

func H汇编_INC_ECX

func H汇编_INC_ECX()

func H汇编_INC_EDI

func H汇编_INC_EDI()

func H汇编_INC_EDX

func H汇编_INC_EDX()

func H汇编_INC_ESI

func H汇编_INC_ESI()

func H汇编_IN_AL_DX

func H汇编_IN_AL_DX()

func H汇编_JMP

func H汇编_JMP(addr int32)

func H汇编_JMP_EAX

func H汇编_JMP_EAX()

func H汇编_LEAVE

func H汇编_LEAVE()

func H汇编_MOV_DWORD_PTR_EAX

func H汇编_MOV_DWORD_PTR_EAX(addr int32)

func H汇编_MOV_EAX

func H汇编_MOV_EAX(v int32)

func H汇编_MOV_EAX_DWORD_PTR

func H汇编_MOV_EAX_DWORD_PTR(addr int32)

func H汇编_MOV_EAX_DWORD_PTR_EAX

func H汇编_MOV_EAX_DWORD_PTR_EAX()

func H汇编_MOV_EAX_DWORD_PTR_EAX_ADD

func H汇编_MOV_EAX_DWORD_PTR_EAX_ADD(disp int32)

func H汇编_MOV_EAX_DWORD_PTR_EBP

func H汇编_MOV_EAX_DWORD_PTR_EBP()

func H汇编_MOV_EAX_DWORD_PTR_EBP_ADD

func H汇编_MOV_EAX_DWORD_PTR_EBP_ADD(disp int32)

func H汇编_MOV_EAX_DWORD_PTR_EBX

func H汇编_MOV_EAX_DWORD_PTR_EBX()

func H汇编_MOV_EAX_DWORD_PTR_EBX_ADD

func H汇编_MOV_EAX_DWORD_PTR_EBX_ADD(disp int32)

func H汇编_MOV_EAX_DWORD_PTR_ECX

func H汇编_MOV_EAX_DWORD_PTR_ECX()

func H汇编_MOV_EAX_DWORD_PTR_ECX_ADD

func H汇编_MOV_EAX_DWORD_PTR_ECX_ADD(disp int32)

func H汇编_MOV_EAX_DWORD_PTR_EDI

func H汇编_MOV_EAX_DWORD_PTR_EDI()

func H汇编_MOV_EAX_DWORD_PTR_EDI_ADD

func H汇编_MOV_EAX_DWORD_PTR_EDI_ADD(disp int32)

func H汇编_MOV_EAX_DWORD_PTR_EDX

func H汇编_MOV_EAX_DWORD_PTR_EDX()

func H汇编_MOV_EAX_DWORD_PTR_EDX_ADD

func H汇编_MOV_EAX_DWORD_PTR_EDX_ADD(disp int32)

func H汇编_MOV_EAX_DWORD_PTR_ESI

func H汇编_MOV_EAX_DWORD_PTR_ESI()

func H汇编_MOV_EAX_DWORD_PTR_ESI_ADD

func H汇编_MOV_EAX_DWORD_PTR_ESI_ADD(disp int32)

func H汇编_MOV_EAX_DWORD_PTR_ESP

func H汇编_MOV_EAX_DWORD_PTR_ESP()

func H汇编_MOV_EAX_DWORD_PTR_ESP_ADD

func H汇编_MOV_EAX_DWORD_PTR_ESP_ADD(disp int32)

func H汇编_MOV_EBP

func H汇编_MOV_EBP(v int32)

func H汇编_MOV_EBP_DWORD_PTR

func H汇编_MOV_EBP_DWORD_PTR(addr int32)

func H汇编_MOV_EBX

func H汇编_MOV_EBX(v int32)

func H汇编_MOV_EBX_DWORD_PTR

func H汇编_MOV_EBX_DWORD_PTR(addr int32)

func H汇编_MOV_EBX_DWORD_PTR_EAX_ADD

func H汇编_MOV_EBX_DWORD_PTR_EAX_ADD(disp int32)

func H汇编_MOV_EBX_DWORD_PTR_EBP_ADD

func H汇编_MOV_EBX_DWORD_PTR_EBP_ADD(disp int32)

func H汇编_MOV_EBX_DWORD_PTR_EBX_ADD

func H汇编_MOV_EBX_DWORD_PTR_EBX_ADD(disp int32)

func H汇编_MOV_EBX_DWORD_PTR_ECX_ADD

func H汇编_MOV_EBX_DWORD_PTR_ECX_ADD(disp int32)

func H汇编_MOV_EBX_DWORD_PTR_EDI_ADD

func H汇编_MOV_EBX_DWORD_PTR_EDI_ADD(disp int32)

func H汇编_MOV_EBX_DWORD_PTR_EDX_ADD

func H汇编_MOV_EBX_DWORD_PTR_EDX_ADD(disp int32)

func H汇编_MOV_EBX_DWORD_PTR_ESI_ADD

func H汇编_MOV_EBX_DWORD_PTR_ESI_ADD(disp int32)

func H汇编_MOV_EBX_DWORD_PTR_ESP_ADD

func H汇编_MOV_EBX_DWORD_PTR_ESP_ADD(disp int32)

func H汇编_MOV_ECX

func H汇编_MOV_ECX(v int32)

func H汇编_MOV_ECX_DWORD_PTR

func H汇编_MOV_ECX_DWORD_PTR(addr int32)

func H汇编_MOV_ECX_DWORD_PTR_EAX_ADD

func H汇编_MOV_ECX_DWORD_PTR_EAX_ADD(disp int32)

func H汇编_MOV_ECX_DWORD_PTR_EBP_ADD

func H汇编_MOV_ECX_DWORD_PTR_EBP_ADD(disp int32)

func H汇编_MOV_ECX_DWORD_PTR_EBX_ADD

func H汇编_MOV_ECX_DWORD_PTR_EBX_ADD(disp int32)

func H汇编_MOV_ECX_DWORD_PTR_ECX_ADD

func H汇编_MOV_ECX_DWORD_PTR_ECX_ADD(disp int32)

func H汇编_MOV_ECX_DWORD_PTR_EDI_ADD

func H汇编_MOV_ECX_DWORD_PTR_EDI_ADD(disp int32)

func H汇编_MOV_ECX_DWORD_PTR_EDX_ADD

func H汇编_MOV_ECX_DWORD_PTR_EDX_ADD(disp int32)

func H汇编_MOV_ECX_DWORD_PTR_ESI_ADD

func H汇编_MOV_ECX_DWORD_PTR_ESI_ADD(disp int32)

func H汇编_MOV_ECX_DWORD_PTR_ESP_ADD

func H汇编_MOV_ECX_DWORD_PTR_ESP_ADD(disp int32)

func H汇编_MOV_EDI

func H汇编_MOV_EDI(v int32)

func H汇编_MOV_EDI_DWORD_PTR

func H汇编_MOV_EDI_DWORD_PTR(addr int32)

func H汇编_MOV_EDX

func H汇编_MOV_EDX(v int32)

func H汇编_MOV_EDX_DWORD_PTR

func H汇编_MOV_EDX_DWORD_PTR(addr int32)

func H汇编_MOV_EDX_DWORD_PTR_EAX_ADD

func H汇编_MOV_EDX_DWORD_PTR_EAX_ADD(disp int32)

func H汇编_MOV_EDX_DWORD_PTR_EBP_ADD

func H汇编_MOV_EDX_DWORD_PTR_EBP_ADD(disp int32)

func H汇编_MOV_EDX_DWORD_PTR_EBX_ADD

func H汇编_MOV_EDX_DWORD_PTR_EBX_ADD(disp int32)

func H汇编_MOV_EDX_DWORD_PTR_ECX_ADD

func H汇编_MOV_EDX_DWORD_PTR_ECX_ADD(disp int32)

func H汇编_MOV_EDX_DWORD_PTR_EDI_ADD

func H汇编_MOV_EDX_DWORD_PTR_EDI_ADD(disp int32)

func H汇编_MOV_EDX_DWORD_PTR_EDX_ADD

func H汇编_MOV_EDX_DWORD_PTR_EDX_ADD(disp int32)

func H汇编_MOV_EDX_DWORD_PTR_ESI_ADD

func H汇编_MOV_EDX_DWORD_PTR_ESI_ADD(disp int32)

func H汇编_MOV_ESI

func H汇编_MOV_ESI(v int32)

func H汇编_MOV_ESI_DWORD_PTR

func H汇编_MOV_ESI_DWORD_PTR(addr int32)

func H汇编_MOV_ESI_DWORD_PTR_EAX_ADD

func H汇编_MOV_ESI_DWORD_PTR_EAX_ADD(disp int32)

func H汇编_MOV_ESP

func H汇编_MOV_ESP(v int32)

func H汇编_MOV_ESP_DWORD_PTR

func H汇编_MOV_ESP_DWORD_PTR(addr int32)

func H汇编_NOP

func H汇编_NOP()

func H汇编_POPAD

func H汇编_POPAD()

func H汇编_PUSHAD

func H汇编_PUSHAD()

func H汇编_RET

func H汇编_RET()

func H汇编_TEST_EAX_EAX

func H汇编_TEST_EAX_EAX()

func H汇编_取代码

func H汇编_取代码() []byte

func H汇编_取随机字节

func H汇编_取随机字节(长度 int) ([]byte, error)

func H汇编_取随机数

func H汇编_取随机数(起始数, 结束数 int) int

func H汇编_置代码

func H汇编_置代码(代码 []byte)

func H汇编_运行汇编代码

func H汇编_运行汇编代码() (uintptr, error)

H汇编_运行汇编代码 在当前进程中执行已构建的机器码。 使用 VirtualAlloc 分配可执行内存,执行后自动释放。 返回执行结果(EAX 寄存器值)。

func H汇编_远程执行汇编代码

func H汇编_远程执行汇编代码(进程ID uint32, 代码 []byte) error

H汇编_远程执行汇编代码 在指定进程中远程执行已构建的机器码。 使用 VirtualAllocEx + WriteProcessMemory + CreateRemoteThread。

func IP_10进制转IP

func IP_10进制转IP(decimal int) string

IP_10进制转IP 将 10 进制整数转换为点分十进制 IP 地址。 整数按大端序拆分为 4 个字节,每个字节对应 IP 的一段。

参数:

  • decimal: 10 进制表示的 IP 地址整数

返回:

  • string: 点分十进制格式的 IP 地址

示例:

IP_10进制转IP(3232235777)  // "192.168.1.1"

func IP_IP转10进制

func IP_IP转10进制(ip string) int

IP_IP转10进制 将点分十进制 IPv4 地址转换为 10 进制整数。

参数:

  • ip: 点分十进制格式的 IPv4 地址,如 "192.168.1.1"

返回:

  • int: 10 进制表示的 IP 地址整数;格式无效返回 0

示例:

IP_IP转10进制("192.168.1.1")  // 3232235777

func IP_Ping测试

func IP_Ping测试(主机 string, 端口 int, 超时毫秒 int) bool

IP_Ping测试 测试与指定主机的 TCP 连通性(非 ICMP ping)。 尝试在指定超时时间内建立 TCP 连接到目标主机的指定端口。

参数:

  • 主机: 目标主机地址(IP 或域名)
  • 端口: 目标端口号
  • 超时毫秒: 连接超时时间(毫秒)

返回:

  • bool: 连接成功返回 true,否则返回 false

func IP_取MAC地址

func IP_取MAC地址() map[string]string

IP_取MAC地址 获取本机所有网络接口的 MAC 地址。

返回:

  • map[string]string: 键为接口名,值为 MAC 地址(小写冒号分隔);获取失败返回空 map

func IP_取内网IP

func IP_取内网IP() []string

IP_取内网IP 获取本机所有内网(局域网)IPv4 地址。 遍历所有网络接口,过滤回环地址和 IPv6 地址,返回可用的内网 IP 列表。

返回:

  • []string: 内网 IPv4 地址列表;无可用地址时返回空切片

func IP_取外网IP

func IP_取外网IP() string

IP_取外网IP 通过公共 IP 查询服务获取本机的外网(公网)IPv4 地址。 依次尝试多个查询服务,任一成功即返回。

返回:

  • string: 外网 IPv4 地址;获取失败返回空字符串

func IP_取外网IP详细信息

func IP_取外网IP详细信息() string

IP_取外网IP详细信息 通过 ip-api.com 获取外网 IP 的详细信息,包括地理位置、ISP 等。 返回 JSON 格式的信息字符串。

返回:

  • string: JSON 格式的 IP 详细信息;获取失败返回空字符串

func IP_取首选内网IP

func IP_取首选内网IP() string

IP_取首选内网IP 获取本机首选内网 IPv4 地址。 优先返回非 "169.254.x.x"(链路本地)的地址,通常为实际局域网地址。

返回:

  • string: 首选内网 IPv4 地址;无可用地址返回空字符串

func IP_是否内网IP

func IP_是否内网IP(ip string) bool

IP_是否内网IP 判断指定的 IPv4 地址是否为内网(私有)地址。 内网地址范围:10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16。

参数:

  • ip: 点分十进制格式的 IPv4 地址

返回:

  • bool: 是内网地址返回 true,否则返回 false

func IP_是否有效IP

func IP_是否有效IP(ip string) bool

IP_是否有效IP 判断指定字符串是否为有效的 IPv4 或 IPv6 地址。

参数:

  • ip: 待验证的 IP 地址字符串

返回:

  • bool: 有效返回 true,否则返回 false

func Int32ToBytes

func Int32ToBytes(i int32) []byte

Int32ToBytes 将 int32 整数转换为 4 字节的大端序字节集。 使用 binary.BigEndian 编码。

参数:

  • i: 待转换的 int32 值

返回:

  • []byte: 4 字节大端序字节集;转换失败返回空字节集

func Int64到Float64

func Int64到Float64(值 int64) float64

Int64到Float64 将 int64 转换为 float64,使用 decimal 库防止精度丢失。 结果保留 2 位小数。

参数:

  • 值: 待转换的 int64 值

返回:

  • float64: 转换后的浮点数(保留 2 位小数)

func Intersection

func Intersection(a, b []int) []int

Intersection calculates the intersection of two integer slices (elements present in both slices).

Parameters:

  • a: first slice
  • b: second slice

Returns:

  • []int: intersection result

Example:

a := []int{1, 2, 3, 4, 5}
b := []int{3, 4, 5, 6, 7}
Intersection(a, b)  // []int{3, 4, 5}

func Int取绝对值

func Int取绝对值(值 int) int

Int取绝对值 返回整数的绝对值。 正数和零直接返回,负数取反。

参数:

  • 值: 输入的整数

返回:

  • int: 绝对值

func IsPrime

func IsPrime(n int) bool

IsPrime checks if an integer is a prime number.

Parameters:

  • n: integer to check

Returns:

  • bool: true if prime, false otherwise

Example:

IsPrime(7)   // true
IsPrime(10)  // false

func Jjson_删除值

func Jjson_删除值(json文本 string, 路径 string) (string, error)

Jjson_删除值 从 JSON 字符串中删除指定路径的值。

参数:

  • json文本: 原始 JSON 字符串
  • 路径: 要删除的路径

返回:

  • string: 删除后的 JSON 字符串
  • error: 删除失败时返回错误

func Jjson_到文本

func Jjson_到文本(值 interface{}) (string, error)

Jjson_到文本 将 Go 值序列化为 JSON 字符串。

参数:

  • 值: 待序列化的值,支持结构体、map、切片等

返回:

  • string: JSON 字符串
  • error: 序列化失败时返回错误

func Jjson_到格式化文本

func Jjson_到格式化文本(值 interface{}, 缩进 string) (string, error)

Jjson_到格式化文本 将 Go 值序列化为带缩进的 JSON 字符串。

参数:

  • 值: 待序列化的值
  • 缩进: 缩进字符串,通常为 " " 或 "\t"

返回:

  • string: 格式化后的 JSON 字符串
  • error: 序列化失败时返回错误

func Jjson_取值

func Jjson_取值(json文本 string, 路径 string) string

Jjson_取值 从 JSON 字符串中根据路径获取值。 路径语法参考 gjson:点号分隔,如 "user.name"、"list.0.id"。

参数:

  • json文本: JSON 格式的字符串
  • 路径: 取值路径,如 "key"、"a.b.c"、"arr.0"

返回:

  • string: 路径对应的值(字符串形式);路径不存在时返回空串

func Jjson_取对象

func Jjson_取对象(json文本 string, 路径 string) map[string]gjson.Result

Jjson_取对象 从 JSON 字符串中根据路径获取对象的键值对。

参数:

  • json文本: JSON 格式的字符串
  • 路径: 取值路径,指向一个 JSON 对象

返回:

  • map[string]gjson.Result: 对象的键值映射;路径不存在时返回空 map

func Jjson_取所有路径

func Jjson_取所有路径(json文本 string) []string

Jjson_取所有路径 获取 JSON 字符串中所有值的路径。 返回所有叶节点的路径,便于遍历整个 JSON 结构。

参数:

  • json文本: JSON 格式的字符串

返回:

  • []string: 所有路径的切片

func Jjson_取数组

func Jjson_取数组(json文本 string, 路径 string) []gjson.Result

Jjson_取数组 从 JSON 字符串中根据路径获取数组。 返回 gjson.Result 数组,可通过下标访问每个元素。

参数:

  • json文本: JSON 格式的字符串
  • 路径: 取值路径,指向一个 JSON 数组

返回:

  • []gjson.Result: 数组元素列表;路径不存在时返回空切片

func Jjson_取数组长度

func Jjson_取数组长度(json文本 string, 路径 string) int

Jjson_取数组长度 从 JSON 字符串中获取指定路径数组的长度。

参数:

  • json文本: JSON 格式的字符串
  • 路径: 指向 JSON 数组的路径

返回:

  • int: 数组长度;路径不存在或非数组时返回 0

func Jjson_取整数

func Jjson_取整数(json文本 string, 路径 string) int64

Jjson_取整数 从 JSON 字符串中根据路径获取整数值。

参数:

  • json文本: JSON 格式的字符串
  • 路径: 取值路径

返回:

  • int64: 路径对应的整数值;路径不存在时返回 0

func Jjson_取浮点数

func Jjson_取浮点数(json文本 string, 路径 string) float64

Jjson_取浮点数 从 JSON 字符串中根据路径获取浮点数值。

参数:

  • json文本: JSON 格式的字符串
  • 路径: 取值路径

返回:

  • float64: 路径对应的浮点数值;路径不存在时返回 0

func Jjson_取逻辑型

func Jjson_取逻辑型(json文本 string, 路径 string) bool

Jjson_取逻辑型 从 JSON 字符串中根据路径获取布尔值。

参数:

  • json文本: JSON 格式的字符串
  • 路径: 取值路径

返回:

  • bool: 路径对应的布尔值;路径不存在时返回 false

func Jjson_是否存在

func Jjson_是否存在(json文本 string, 路径 string) bool

Jjson_是否存在 判断 JSON 字符串中指定路径是否存在。

参数:

  • json文本: JSON 格式的字符串
  • 路径: 检查路径

返回:

  • bool: 路径存在返回 true,否则返回 false

func Jjson_解析

func Jjson_解析(json文本 string, 目标 interface{}) error

Jjson_解析 将 JSON 字符串反序列化到目标变量。

参数:

  • json文本: JSON 格式的字符串
  • 目标: 指向目标变量的指针,如 &obj

返回:

  • error: 反序列化失败时返回错误

func Jjson_设置值

func Jjson_设置值(json文本 string, 路径 string, 值 interface{}) (string, error)

Jjson_设置值 在 JSON 字符串中设置指定路径的值。 如果路径不存在会自动创建;支持设置字符串、数值、布尔值等。

参数:

  • json文本: 原始 JSON 字符串
  • 路径: 设置路径,如 "user.name"、"list.-1"(追加到数组末尾)
  • 值: 要设置的值

返回:

  • string: 修改后的 JSON 字符串
  • error: 设置失败时返回错误

func Jjson_设置整数值

func Jjson_设置整数值(json文本 string, 路径 string, 值 int64) (string, error)

Jjson_设置整数值 在 JSON 字符串中设置指定路径的整数值。

参数:

  • json文本: 原始 JSON 字符串
  • 路径: 设置路径
  • 值: 要设置的整数值

返回:

  • string: 修改后的 JSON 字符串
  • error: 设置失败时返回错误

func Jjson_设置文本值

func Jjson_设置文本值(json文本 string, 路径 string, 值 string) (string, error)

Jjson_设置文本值 在 JSON 字符串中设置指定路径的字符串值。

参数:

  • json文本: 原始 JSON 字符串
  • 路径: 设置路径
  • 值: 要设置的字符串值

返回:

  • string: 修改后的 JSON 字符串
  • error: 设置失败时返回错误

func Join

func Join(parts []string, sep string) string

Join joins a slice of strings into a single string.

Parameters:

  • parts: slice of strings to join
  • sep: separator

Returns:

  • string: joined string

Example:

Join([]string{"a", "b", "c"}, ",")  // "a,b,c"

func J加解密_3DES_CBC加密

func J加解密_3DES_CBC加密(明文, 密钥, IV []byte) (string, error)

J加解密_3DES_CBC加密 使用 3DES-CBC 模式加密数据。 3DES 对每个数据块应用三次 DES 加密,密钥长度固定为 24 字节(168 位有效密钥)。 采用 PKCS7 填充方案,返回 Base64 编码的密文。

参数:

  • 明文: 待加密的原始数据
  • 密钥: 3DES 密钥,长度必须为 24 字节
  • IV: 初始化向量,长度必须为 8 字节

返回:

  • string: Base64 编码的密文
  • error: 加密失败时返回错误信息

func J加解密_3DES_CBC解密

func J加解密_3DES_CBC解密(密文Base64 string, 密钥, IV []byte) ([]byte, error)

J加解密_3DES_CBC解密 3DES-CBC 模式解密。

参数:

  • 密文Base64: Base64 编码的密文
  • 密钥: 3DES 密钥(24 字节)
  • IV: 初始化向量

返回:

  • []byte: 解密后的明文字节集
  • error: 解密失败时返回错误信息

func J加解密_3DES_ECB加密

func J加解密_3DES_ECB加密(明文, 密钥 []byte) (string, error)

J加解密_3DES_ECB加密 使用 3DES-ECB 模式加密数据。 ECB 模式不使用 IV,安全性较低。

参数:

  • 明文: 待加密的原始数据
  • 密钥: 3DES 密钥(24 字节)

返回:

  • string: Base64 编码的密文
  • error: 加密失败时返回错误信息

func J加解密_3DES_ECB解密

func J加解密_3DES_ECB解密(密文Base64 string, 密钥 []byte) ([]byte, error)

J加解密_3DES_ECB解密 3DES-ECB 模式解密。

参数:

  • 密文Base64: Base64 编码的密文
  • 密钥: 3DES 密钥

返回:

  • []byte: 解密后的明文字节集
  • error: 解密失败时返回错误信息

func J加解密_AES_CBC加密

func J加解密_AES_CBC加密(明文, 密钥, IV []byte) (string, error)

J加解密_AES_CBC加密 使用 AES-CBC 模式加密数据。 采用 PKCS7 填充方案,返回 Base64 编码的密文。

参数:

  • 明文: 待加密的原始数据
  • 密钥: AES 密钥,长度必须为 16(AES-128)、24(AES-192)或 32(AES-256)字节
  • IV: 初始化向量,长度必须为 16 字节

返回:

  • string: Base64 编码的密文
  • error: 加密失败时返回错误信息

func J加解密_AES_CBC解密

func J加解密_AES_CBC解密(密文Base64 string, 密钥, IV []byte) ([]byte, error)

J加解密_AES_CBC解密 AES-CBC 模式解密,输入为 Base64 密文。

参数:

  • 密文Base64: Base64 编码的密文文本
  • 密钥: AES 密钥
  • IV: 初始化向量

返回:

  • []byte: 解密后的明文字节集
  • error: 解密失败时返回错误信息

func J加解密_AES_CFB加密

func J加解密_AES_CFB加密(明文, 密钥 []byte) (string, error)

J加解密_AES_CFB加密 使用 AES-CFB 模式加密数据。 CFB 模式为流加密模式,不需要填充,适合逐字节加密场景。 自动生成随机 IV,格式为 IV + 密文。

参数:

  • 明文: 待加密的原始数据
  • 密钥: AES 密钥

返回:

  • string: Base64 编码的密文
  • error: 加密失败时返回错误信息

func J加解密_AES_CFB解密

func J加解密_AES_CFB解密(密文Base64 string, 密钥 []byte) ([]byte, error)

J加解密_AES_CFB解密 AES-CFB 模式解密。

参数:

  • 密文Base64: Base64 编码的密文
  • 密钥: AES 密钥

返回:

  • []byte: 解密后的明文字节集
  • error: 解密失败时返回错误信息

func J加解密_AES_CTR加密

func J加解密_AES_CTR加密(明文, 密钥 []byte) (string, error)

J加解密_AES_CTR加密 使用 AES-CTR 模式加密数据。 CTR 模式为流加密模式,不需要填充,适合任意长度数据。 自动生成随机 IV,格式为 IV + 密文。

参数:

  • 明文: 待加密的原始数据
  • 密钥: AES 密钥

返回:

  • string: Base64 编码的密文
  • error: 加密失败时返回错误信息

func J加解密_AES_CTR解密

func J加解密_AES_CTR解密(密文Base64 string, 密钥 []byte) ([]byte, error)

J加解密_AES_CTR解密 AES-CTR 模式解密。

参数:

  • 密文Base64: Base64 编码的密文
  • 密钥: AES 密钥

返回:

  • []byte: 解密后的明文字节集
  • error: 解密失败时返回错误信息

func J加解密_AES_ECB加密

func J加解密_AES_ECB加密(明文, 密钥 []byte) (string, error)

J加解密_AES_ECB加密 使用 AES-ECB 模式加密数据(不推荐在生产环境使用)。 ECB 模式不使用 IV,安全性较低,相同明文块会生成相同密文块。

参数:

  • 明文: 待加密的原始数据
  • 密钥: AES 密钥

返回:

  • string: Base64 编码的密文
  • error: 加密失败时返回错误信息

func J加解密_AES_ECB解密

func J加解密_AES_ECB解密(密文Base64 string, 密钥 []byte) ([]byte, error)

J加解密_AES_ECB解密 AES-ECB 模式解密。

参数:

  • 密文Base64: Base64 编码的密文文本
  • 密钥: AES 密钥

返回:

  • []byte: 解密后的明文字节集
  • error: 解密失败时返回错误信息

func J加解密_AES_GCM加密

func J加解密_AES_GCM加密(明文, 密钥, 附加数据 []byte) (string, error)

J加解密_AES_GCM加密 使用 AES-GCM 认证加密模式加密数据。 GCM 模式同时提供机密性和完整性验证,推荐用于安全敏感场景。 自动生成 12 字节随机 nonce,格式为 nonce + 密文。

参数:

  • 明文: 待加密的原始数据
  • 密钥: AES 密钥
  • 附加数据: 可选,参与认证但不加密的附加数据

返回:

  • string: Base64 编码的密文(nonce + 密文 + tag)
  • error: 加密失败时返回错误信息

func J加解密_AES_GCM解密

func J加解密_AES_GCM解密(密文Base64 string, 密钥, 附加数据 []byte) ([]byte, error)

J加解密_AES_GCM解密 AES-GCM 认证解密。

参数:

  • 密文Base64: Base64 编码的密文
  • 密钥: AES 密钥
  • 附加数据: 加密时传入的附加数据,必须一致

返回:

  • []byte: 解密后的明文字节集
  • error: 解密失败或认证失败时返回错误信息

func J加解密_AES_OFB加密

func J加解密_AES_OFB加密(明文, 密钥 []byte) (string, error)

J加解密_AES_OFB加密 使用 AES-OFB 模式加密数据。 OFB 将分组密码转换为同步流密码,比特错误不会传播。 自动生成随机 IV,格式为 IV + 密文。

参数:

  • 明文: 待加密的原始数据
  • 密钥: AES 密钥

返回:

  • string: Base64 编码的密文
  • error: 加密失败时返回错误信息

func J加解密_AES_OFB解密

func J加解密_AES_OFB解密(密文Base64 string, 密钥 []byte) ([]byte, error)

J加解密_AES_OFB解密 AES-OFB 模式解密。

参数:

  • 密文Base64: Base64 编码的密文
  • 密钥: AES 密钥

返回:

  • []byte: 解密后的明文字节集
  • error: 解密失败时返回错误信息

func J加解密_DES_CBC加密

func J加解密_DES_CBC加密(明文, 密钥, IV []byte) (string, error)

J加解密_DES_CBC加密 使用 DES-CBC 模式加密数据。 DES 密钥长度固定为 8 字节(56 位有效密钥)。 采用 PKCS7 填充方案,返回 Base64 编码的密文。

参数:

  • 明文: 待加密的原始数据
  • 密钥: DES 密钥,长度必须为 8 字节
  • IV: 初始化向量,长度必须为 8 字节

返回:

  • string: Base64 编码的密文
  • error: 加密失败时返回错误信息

func J加解密_DES_CBC解密

func J加解密_DES_CBC解密(密文Base64 string, 密钥, IV []byte) ([]byte, error)

J加解密_DES_CBC解密 DES-CBC 模式解密。

参数:

  • 密文Base64: Base64 编码的密文
  • 密钥: DES 密钥
  • IV: 初始化向量

返回:

  • []byte: 解密后的明文字节集
  • error: 解密失败时返回错误信息

func J加解密_DES_ECB加密

func J加解密_DES_ECB加密(明文, 密钥 []byte) (string, error)

J加解密_DES_ECB加密 使用 DES-ECB 模式加密数据。 ECB 模式不使用 IV,安全性较低,不建议在生产环境使用。

参数:

  • 明文: 待加密的原始数据
  • 密钥: DES 密钥(8 字节)

返回:

  • string: Base64 编码的密文
  • error: 加密失败时返回错误信息

func J加解密_DES_ECB解密

func J加解密_DES_ECB解密(密文Base64 string, 密钥 []byte) ([]byte, error)

J加解密_DES_ECB解密 DES-ECB 模式解密。

参数:

  • 密文Base64: Base64 编码的密文
  • 密钥: DES 密钥

返回:

  • []byte: 解密后的明文字节集
  • error: 解密失败时返回错误信息

func J加解密_RC4

func J加解密_RC4(数据, 密钥 []byte) string

J加解密_RC4 使用 RC4 算法对数据进行加解密。 RC4 为对称流加密算法,加密和解密调用同一函数。 返回值经过 Base64 编码方便存储。

参数:

  • 数据: 待加解密的原始数据
  • 密钥: RC4 密钥,建议长度 5-16 字节

返回:

  • string: Base64 编码的加解密结果

func J加解密_RC4字节集

func J加解密_RC4字节集(数据, 密钥 []byte) []byte

J加解密_RC4字节集 RC4 加解密,返回原始字节集(不经过 Base64 编码)。

参数:

  • 数据: 待加解密的原始数据
  • 密钥: RC4 密钥

返回:

  • []byte: 加解密结果的原始字节集

func J加解密_TEA加密

func J加解密_TEA加密(明文, 密钥 []byte) (string, error)

J加解密_TEA加密 TEA 加密算法。 TEA 是一种轻量级分组密码,使用 128 位密钥,性能优秀且实现简单。 明文长度必须是 8 的整数倍(不足会自动零填充)。 迭代轮数默认 32 轮。

参数:

  • 明文: 待加密的原始数据
  • 密钥: TEA 密钥,长度必须为 16 字节

返回:

  • string: Base64 编码的密文
  • error: 密钥长度不足时返回错误

func J加解密_TEA解密

func J加解密_TEA解密(密文Base64 string, 密钥 []byte) ([]byte, error)

J加解密_TEA解密 TEA 解密算法。

参数:

  • 密文Base64: Base64 编码的密文
  • 密钥: TEA 密钥(16 字节)

返回:

  • []byte: 解密后的明文字节集
  • error: 解密失败时返回错误信息

func J加解密_XOR

func J加解密_XOR(数据, 密钥 []byte) []byte

J加解密_XOR 使用 XOR 算法对数据进行加解密。 XOR 是最简单的对称加密算法,加密和解密调用同一函数。 密钥会循环使用以匹配数据长度。

参数:

  • 数据: 待加解密的原始数据
  • 密钥: XOR 密钥

返回:

  • []byte: 加解密结果的原始字节集

func J加解密_XOR文本

func J加解密_XOR文本(数据, 密钥 []byte) string

J加解密_XOR文本 XOR 加解密,返回 Base64 编码字符串。 适用于字符串加密场景,方便存储和传输。

参数:

  • 数据: 待加解密的原始数据
  • 密钥: XOR 密钥

返回:

  • string: Base64 编码的加解密结果

func J加解密_XXTEA加密

func J加解密_XXTEA加密(明文, 密钥 []byte) (string, error)

J加解密_XXTEA加密 XXTEA 加密算法。 XXTEA 是 TEA 的改进版本,支持任意长度数据,无需填充。 密钥长度为 16 字节,加密结果经过 Base64 编码。

参数:

  • 明文: 待加密的任意长度数据
  • 密钥: XXTEA 密钥,长度必须至少 16 字节

返回:

  • string: Base64 编码的密文
  • error: 密钥长度不足时返回错误

func J加解密_XXTEA解密

func J加解密_XXTEA解密(密文Base64 string, 密钥 []byte) ([]byte, error)

J加解密_XXTEA解密 XXTEA 解密算法。

参数:

  • 密文Base64: Base64 编码的密文
  • 密钥: XXTEA 密钥(至少 16 字节)

返回:

  • []byte: 解密后的明文字节集
  • error: 解密失败时返回错误信息

func J加解密_生成AES密钥

func J加解密_生成AES密钥(长度 int) ([]byte, error)

J加解密_生成AES密钥 生成指定长度的 AES 密钥(16/24/32 字节)。 密钥由 crypto/rand 生成,确保安全随机。

参数:

  • 长度: 密钥长度,可选 16(AES-128)、24(AES-192)、32(AES-256)

返回:

  • []byte: 随机生成的 AES 密钥
  • error: 生成失败或长度非法时返回错误

func J加解密_生成IV

func J加解密_生成IV(块大小 int) ([]byte, error)

J加解密_生成IV 生成指定块大小的随机初始化向量(IV)。 AES/DES 的 IV 长度等于块大小(AES=16, DES/3DES=8)。

参数:

  • 块大小: IV 长度,通常为 8(DES/3DES)或 16(AES)

返回:

  • []byte: 随机生成的 IV
  • error: 生成失败时返回错误

func J校验_HMAC_MD5

func J校验_HMAC_MD5(密钥 []byte, 数据 []byte, 返回值转成大写 bool) string

J校验_HMAC_MD5 使用 HMAC-MD5 计算消息认证码。

参数:

  • 密钥: HMAC 密钥
  • 数据: 待认证的数据
  • 返回值转成大写: true 返回大写

返回:

  • string: 32 位十六进制 HMAC-MD5 值

func J校验_HMAC_SHA1

func J校验_HMAC_SHA1(密钥 []byte, 数据 []byte, 返回值转成大写 bool) string

J校验_HMAC_SHA1 使用 HMAC-SHA1 计算消息认证码。

参数:

  • 密钥: HMAC 密钥
  • 数据: 待认证的数据
  • 返回值转成大写: true 返回大写

返回:

  • string: 40 位十六进制 HMAC-SHA1 值

func J校验_HMAC_SHA256

func J校验_HMAC_SHA256(密钥 []byte, 数据 []byte, 返回值转成大写 bool) string

J校验_HMAC_SHA256 使用 HMAC-SHA256 计算消息认证码。 常用于 API 签名验证。

参数:

  • 密钥: HMAC 密钥
  • 数据: 待认证的数据
  • 返回值转成大写: true 返回大写

返回:

  • string: 64 位十六进制 HMAC-SHA256 值

func J校验_HMAC_SHA512

func J校验_HMAC_SHA512(密钥 []byte, 数据 []byte, 返回值转成大写 bool) string

J校验_HMAC_SHA512 使用 HMAC-SHA512 计算消息认证码。

参数:

  • 密钥: HMAC 密钥
  • 数据: 待认证的数据
  • 返回值转成大写: true 返回大写

返回:

  • string: 128 位十六进制 HMAC-SHA512 值

func J校验_取Adler32

func J校验_取Adler32(数据 []byte, 返回值转成大写 bool) string

J校验_取Adler32 计算字节集数据的 Adler-32 校验值。

参数:

  • 数据: 待计算的字节集
  • 返回值转成大写: true 返回大写

返回:

  • string: 8 位十六进制 Adler-32 校验值

func J校验_取CRC64

func J校验_取CRC64(数据 []byte, 返回值转成大写 bool) string

J校验_取CRC64 计算字节集数据的 CRC64 校验值。 使用 ECMA 多项式。

参数:

  • 数据: 待计算的字节集
  • 返回值转成大写: true 返回大写

返回:

  • string: 16 位十六进制 CRC64 校验值

func J校验_取Crc32

func J校验_取Crc32(数据 []byte, 返回值转成大写 bool) string

J校验_取Crc32 计算字节集数据的 CRC32 校验值,返回 8 位十六进制字符串。

参数:

  • 数据: 待计算校验值的字节集
  • 返回值转成大写: true 返回大写,false 返回小写

返回:

  • string: 8 位十六进制 CRC32 校验值;计算失败返回空串

func J校验_取Crc32_文件

func J校验_取Crc32_文件(文件路径 string, 返回值转成大写 bool) (string, error)

J校验_取Crc32_文件 计算文件的 CRC32 校验值。

参数:

  • 文件路径: 文件路径
  • 返回值转成大写: true 返回大写

返回:

  • string: 8 位十六进制 CRC32 校验值
  • error: 文件读取失败时返回错误

func J校验_取md5

func J校验_取md5(字节集数据 []byte, 返回值转成大写 bool) string

J校验_取md5 计算字节集数据的 MD5 哈希值,返回 32 位十六进制字符串。

参数:

  • 字节集数据: 待计算哈希的字节集
  • 返回值转成大写: true 返回大写哈希,false 返回小写哈希

返回:

  • string: 32 位十六进制 MD5 哈希值

func J校验_取md5_16位

func J校验_取md5_16位(字节集数据 []byte, 返回值转成大写 bool) string

J校验_取md5_16位 计算 16 位 MD5 哈希值(取 32 位的中间 16 位)。

参数:

  • 字节集数据: 待计算哈希的字节集
  • 返回值转成大写: true 返回大写

返回:

  • string: 16 位十六进制 MD5 哈希值

func J校验_取md5_文件

func J校验_取md5_文件(文件路径 string, 返回值转成大写 bool) (string, error)

J校验_取md5_文件 计算文件的 MD5 哈希值(流式读取,支持大文件)。

参数:

  • 文件路径: 文件路径
  • 返回值转成大写: true 返回大写

返回:

  • string: 32 位十六进制 MD5 哈希值
  • error: 文件读取失败时返回错误

func J校验_取md5_文本

func J校验_取md5_文本(文本数据 string, 返回值转成大写 bool) string

J校验_取md5_文本 计算文本字符串的 MD5 哈希值。

参数:

  • 文本数据: 待计算哈希的文本
  • 返回值转成大写: true 返回大写哈希,false 返回小写哈希

返回:

  • string: 32 位十六进制 MD5 哈希值

func J校验_取sha1

func J校验_取sha1(数据 []byte, 返回值转成大写 bool) string

J校验_取sha1 计算字节集数据的 SHA1 哈希值,返回 40 位十六进制字符串。

参数:

  • 数据: 待计算哈希的字节集
  • 返回值转成大写: true 返回大写,false 返回小写

返回:

  • string: 40 位十六进制 SHA1 哈希值

func J校验_取sha1_文件

func J校验_取sha1_文件(文件路径 string, 返回值转成大写 bool) (string, error)

J校验_取sha1_文件 计算文件的 SHA1 哈希值。

参数:

  • 文件路径: 文件路径
  • 返回值转成大写: true 返回大写

返回:

  • string: 40 位十六进制 SHA1 哈希值
  • error: 文件读取失败时返回错误

func J校验_取sha256

func J校验_取sha256(数据 []byte, 返回值转成大写 bool) string

J校验_取sha256 计算字节集数据的 SHA256 哈希值,返回 64 位十六进制字符串。

参数:

  • 数据: 待计算哈希的字节集
  • 返回值转成大写: true 返回大写,false 返回小写

返回:

  • string: 64 位十六进制 SHA256 哈希值

func J校验_取sha256_文件

func J校验_取sha256_文件(文件路径 string, 返回值转成大写 bool) (string, error)

J校验_取sha256_文件 计算文件的 SHA256 哈希值。

参数:

  • 文件路径: 文件路径
  • 返回值转成大写: true 返回大写

返回:

  • string: 64 位十六进制 SHA256 哈希值
  • error: 文件读取失败时返回错误

func J校验_取sha512

func J校验_取sha512(数据 []byte, 返回值转成大写 bool) string

J校验_取sha512 计算字节集数据的 SHA512 哈希值,返回 128 位十六进制字符串。

参数:

  • 数据: 待计算哈希的字节集
  • 返回值转成大写: true 返回大写,false 返回小写

返回:

  • string: 128 位十六进制 SHA512 哈希值

func J校验_取sha512_文件

func J校验_取sha512_文件(文件路径 string, 返回值转成大写 bool) (string, error)

J校验_取sha512_文件 计算文件的 SHA512 哈希值。

参数:

  • 文件路径: 文件路径
  • 返回值转成大写: true 返回大写

返回:

  • string: 128 位十六进制 SHA512 哈希值
  • error: 文件读取失败时返回错误

func J校验_校验HMAC

func J校验_校验HMAC(密钥 []byte, 数据 []byte, 预期值 string) bool

J校验_校验HMAC 校验 HMAC-SHA256 是否与预期一致。

参数:

  • 密钥: HMAC 密钥
  • 数据: 待认证的数据
  • 预期值: 预期的 HMAC 值

返回:

  • bool: 一致返回 true

func J校验_校验MD5

func J校验_校验MD5(数据 []byte, 预期值 string) bool

J校验_校验MD5 校验数据的 MD5 哈希值是否与预期一致。

参数:

  • 数据: 待校验的字节集
  • 预期值: 预期的 MD5 哈希值(不区分大小写)

返回:

  • bool: 一致返回 true

func J校验_校验SHA256

func J校验_校验SHA256(数据 []byte, 预期值 string) bool

J校验_校验SHA256 校验数据的 SHA256 哈希值是否与预期一致。

参数:

  • 数据: 待校验的字节集
  • 预期值: 预期的 SHA256 哈希值(不区分大小写)

返回:

  • bool: 一致返回 true

func J校验_校验文件MD5

func J校验_校验文件MD5(文件路径 string, 预期值 string) (bool, error)

J校验_校验文件MD5 校验文件的 MD5 哈希值是否与预期一致。

参数:

  • 文件路径: 文件路径
  • 预期值: 预期的 MD5 哈希值

返回:

  • bool: 一致返回 true
  • error: 文件读取失败时返回错误

func J校验_校验文件SHA256

func J校验_校验文件SHA256(文件路径 string, 预期值 string) (bool, error)

J校验_校验文件SHA256 校验文件的 SHA256 哈希值是否与预期一致。

参数:

  • 文件路径: 文件路径
  • 预期值: 预期的 SHA256 哈希值

返回:

  • bool: 一致返回 true
  • error: 文件读取失败时返回错误

func J结构体_合并

func J结构体_合并(目标 interface{}, 源 interface{}) error

J结构体_合并 将源结构体的非零值字段合并到目标结构体。 仅覆盖目标结构体中的零值字段,非零值保持不变。 基于 mergo 库实现,适用于配置合并、默认值填充等场景。

参数:

  • 目标: 目标结构体指针,合并结果写入此结构体
  • 源: 源结构体,其非零值将覆盖目标中的零值

返回:

  • error: 合并失败时返回错误(如类型不匹配)

func J结构体_合并Map

func J结构体_合并Map(目标 interface{}, 源 interface{}) error

J结构体_合并Map 将源 map 的非零值合并到目标 map。

参数:

  • 目标: 目标 map 指针
  • 源: 源 map

返回:

  • error: 合并失败时返回错误

func J结构体_合并Map覆盖

func J结构体_合并Map覆盖(目标 interface{}, 源 interface{}) error

J结构体_合并Map覆盖 将源 map 的所有值合并到目标 map,覆盖已有键。

参数:

  • 目标: 目标 map 指针
  • 源: 源 map

返回:

  • error: 合并失败时返回错误

func J结构体_合并不带空值

func J结构体_合并不带空值(目标 interface{}, 源 interface{}) error

J结构体_合并不带空值 将源结构体的非零值字段合并到目标,跳过空值。 源结构体中为零值的字段不会覆盖目标中的对应字段。

参数:

  • 目标: 目标结构体指针
  • 源: 源结构体

返回:

  • error: 合并失败时返回错误

func J结构体_合并覆盖

func J结构体_合并覆盖(目标 interface{}, 源 interface{}) error

J结构体_合并覆盖 将源结构体的所有字段合并到目标结构体。 与 J结构体_合并 不同,此函数会覆盖目标中的所有字段(包括非零值)。

参数:

  • 目标: 目标结构体指针
  • 源: 源结构体

返回:

  • error: 合并失败时返回错误

func J结构体_复制

func J结构体_复制(目标 interface{}, 源 interface{}) error

J结构体_复制 将源结构体的字段值复制到目标结构体。 基于 copier 库实现,支持不同结构体之间的字段复制(按字段名匹配)。 支持切片、嵌套结构体等复杂类型的复制。

参数:

  • 目标: 目标结构体指针
  • 源: 源结构体实例

返回:

  • error: 复制失败时返回错误

func J结构体_复制带选项

func J结构体_复制带选项(目标 interface{}, 源 interface{}, 忽略空值 bool) error

J结构体_复制带选项 带选项复制结构体字段。 可控制是否忽略空值、是否深拷贝等行为。

参数:

  • 目标: 目标结构体指针
  • 源: 源结构体实例
  • 忽略空值: true 时源中的零值字段不会覆盖目标

返回:

  • error: 复制失败时返回错误

func K环境_从文本读取

func K环境_从文本读取(文本 string) (map[string]string, error)

K环境_从文本读取 从文本内容解析环境变量(无需文件)。 文本格式与 .env 文件相同,每行一个 "KEY=VALUE"。

参数:

  • 文本: 环境变量文本内容

返回:

  • map[string]string: 解析后的键值对
  • error: 解析失败时返回错误

func K环境_删除值

func K环境_删除值(名称 string) error

K环境_删除值 删除指定的环境变量。

参数:

  • 名称: 环境变量名

返回:

  • error: 删除失败时返回错误

func K环境_加载

func K环境_加载(文件路径 string) error

K环境_加载 从指定文件加载环境变量到当前进程。 不会覆盖已存在的环境变量。

参数:

  • 文件路径: .env 文件路径,如 ".env" 或 "config/.env"

返回:

  • error: 加载失败时返回错误

func K环境_加载并覆盖

func K环境_加载并覆盖(文件路径 string) error

K环境_加载并覆盖 从指定文件加载环境变量到当前进程。 会覆盖已存在的同名环境变量。

参数:

  • 文件路径: .env 文件路径

返回:

  • error: 加载失败时返回错误

func K环境_取值

func K环境_取值(名称 string) string

K环境_取值 获取指定环境变量的值。

参数:

  • 名称: 环境变量名

返回:

  • string: 环境变量的值;变量不存在时返回空串

func K环境_取值带默认值

func K环境_取值带默认值(名称 string, 默认值 string) string

K环境_取值带默认值 获取指定环境变量的值,不存在时返回默认值。

参数:

  • 名称: 环境变量名
  • 默认值: 变量不存在时返回的默认值

返回:

  • string: 环境变量的值或默认值

func K环境_取所有

func K环境_取所有() []string

K环境_取所有 获取所有环境变量。

返回:

  • []string: 所有环境变量,格式为 "KEY=VALUE"

func K环境_是否存在

func K环境_是否存在(名称 string) bool

K环境_是否存在 判断指定环境变量是否存在。

参数:

  • 名称: 环境变量名

返回:

  • bool: 存在返回 true,否则返回 false

func K环境_设置值

func K环境_设置值(名称 string, 值 string) error

K环境_设置值 设置环境变量的值。 设置的环境变量仅在当前进程及其子进程中有效。

参数:

  • 名称: 环境变量名
  • 值: 环境变量的值

返回:

  • error: 设置失败时返回错误

func K表格_从CSV读取

func K表格_从CSV读取(csv文本 string) ([]string, [][]string, error)

K表格_从CSV读取 从 CSV 字符串解析表格数据。

参数:

  • csv文本: CSV 格式的文本

返回:

  • []string: 表头
  • [][]string: 行数据
  • error: 解析失败时返回错误

func K表格_从TSV读取

func K表格_从TSV读取(tsv文本 string) ([]string, [][]string)

K表格_从TSV读取 从 TSV 字符串解析表格数据。

参数:

  • tsv文本: TSV 格式的文本

返回:

  • []string: 表头
  • [][]string: 行数据

func K表格_列数

func K表格_列数(表头 []string) int

K表格_列数 获取表格列数(基于表头)。

参数:

  • 表头: 表头列名列表

返回:

  • int: 列数

func K表格_创建

func K表格_创建() *termtables.Table

K表格_创建 创建一个新的控制台表格。 创建后可通过 K表格_添加表头 和 K表格_添加行 填充数据。

返回:

  • *termtables.Table: 表格对象指针

func K表格_去重

func K表格_去重(行数据 [][]string) [][]string

K表格_去重 对表格行数据进行去重。

参数:

  • 行数据: 二维字符串数组

返回:

  • [][]string: 去重后的行数据

func K表格_取列

func K表格_取列(行数据 [][]string, 列索引 int) []string

K表格_取列 提取表格指定列的所有值。

参数:

  • 行数据: 二维字符串数组
  • 列索引: 要提取的列索引

返回:

  • []string: 该列所有值

func K表格_取行

func K表格_取行(行数据 [][]string, 行索引 int) []string

K表格_取行 提取表格指定行的数据。

参数:

  • 行数据: 二维字符串数组
  • 行索引: 要提取的行索引

返回:

  • []string: 该行数据;索引越界返回空切片

func K表格_合并

func K表格_合并(行数据1 [][]string, 行数据2 [][]string) [][]string

K表格_合并 合并两个表格(行追加)。 两个表格的列数应一致。

参数:

  • 行数据1: 第一个表格的行数据
  • 行数据2: 第二个表格的行数据

返回:

  • [][]string: 合并后的行数据

func K表格_快速创建

func K表格_快速创建(表头 []string, 行数据 [][]string) string

K表格_快速创建 快速创建并输出一个表格。 传入表头和行数据,直接返回渲染后的表格字符串。

参数:

  • 表头: 表头列名列表
  • 行数据: 二维字符串数组,每行一个切片

返回:

  • string: 渲染后的表格字符串

func K表格_排序列

func K表格_排序列(行数据 [][]string, 列索引 int, 升序 bool) [][]string

K表格_排序列 按指定列排序表格行数据。

参数:

  • 行数据: 二维字符串数组
  • 列索引: 排序依据的列索引
  • 升序: true 升序,false 降序

返回:

  • [][]string: 排序后的行数据

func K表格_添加分隔线

func K表格_添加分隔线(表格 *termtables.Table)

K表格_添加分隔线 在表格中添加一条水平分隔线。

参数:

  • 表格: 表格对象指针

func K表格_添加行

func K表格_添加行(表格 *termtables.Table, 行数据 ...interface{})

K表格_添加行 为表格添加一行数据。 列数应与表头列数一致。

参数:

  • 表格: 表格对象指针
  • 行数据: 该行各列的值

func K表格_添加表头

func K表格_添加表头(表格 *termtables.Table, 表头 ...string)

K表格_添加表头 为表格添加表头行。 表头会以粗体或分隔线形式突出显示。

参数:

  • 表格: 表格对象指针
  • 表头: 表头列名列表

func K表格_行数

func K表格_行数(行数据 [][]string) int

K表格_行数 获取表格行数。

参数:

  • 行数据: 二维字符串数组

返回:

  • int: 行数

func K表格_转置

func K表格_转置(表头 []string, 行数据 [][]string) ([]string, [][]string)

K表格_转置 将表格数据进行转置(行列互换)。

参数:

  • 表头: 表头列名列表
  • 行数据: 二维字符串数组

返回:

  • []string: 新表头
  • [][]string: 新行数据

func K表格_输出

func K表格_输出(表格 *termtables.Table) string

K表格_输出 将表格渲染为字符串输出。 自动对齐列宽,适合在控制台显示。

参数:

  • 表格: 表格对象指针

返回:

  • string: 渲染后的表格字符串

func K表格_输出CSV

func K表格_输出CSV(表头 []string, 行数据 [][]string) string

K表格_输出CSV 将表格输出为 CSV 格式。 每行用逗号分隔,字段含逗号时自动加引号。

参数:

  • 表头: 表头列名列表
  • 行数据: 二维字符串数组

返回:

  • string: CSV 格式字符串

func K表格_输出HTML

func K表格_输出HTML(表头 []string, 行数据 [][]string) string

K表格_输出HTML 将表格输出为 HTML 表格格式。

参数:

  • 表头: 表头列名列表
  • 行数据: 二维字符串数组

返回:

  • string: HTML 表格字符串

func K表格_输出JSON

func K表格_输出JSON(表头 []string, 行数据 [][]string) string

K表格_输出JSON 将表格输出为 JSON 数组格式。 每行数据与表头组合成对象,所有行组成数组。

参数:

  • 表头: 表头列名列表
  • 行数据: 二维字符串数组

返回:

  • string: JSON 格式字符串

func K表格_输出Markdown

func K表格_输出Markdown(表头 []string, 行数据 [][]string) string

K表格_输出Markdown 将表格渲染为 Markdown 格式。 使用 | 分隔列,适合写入 Markdown 文档。

参数:

  • 表头: 表头列名列表
  • 行数据: 二维字符串数组

返回:

  • string: Markdown 格式的表格字符串

func K表格_输出TSV

func K表格_输出TSV(表头 []string, 行数据 [][]string) string

K表格_输出TSV 将表格输出为 TSV 格式(制表符分隔)。

参数:

  • 表头: 表头列名列表
  • 行数据: 二维字符串数组

返回:

  • string: TSV 格式字符串

func K表格_过滤行

func K表格_过滤行(行数据 [][]string, 条件 func(int, []string) bool) [][]string

K表格_过滤行 按条件过滤表格行数据。 条件函数返回 true 时保留该行。

参数:

  • 行数据: 二维字符串数组
  • 条件: 过滤条件函数,参数为行索引和行数据

返回:

  • [][]string: 过滤后的行数据

func LBinarySearch

func LBinarySearch(nums []int, target int) int

LBinarySearch 使用二分查找算法在已排序的整数切片中查找目标值。

Parameters:

  • nums: 已排序的整数切片(升序)
  • target: 要查找的目标值

Returns:

  • int: 目标值的索引,未找到返回 -1

Example:

nums := []int{1, 2, 5, 8, 9}
LBinarySearch(nums, 5)  // returns 2
LBinarySearch(nums, 3)  // returns -1

func LLinearSearch

func LLinearSearch[T comparable](slice []T, target T) int

LLinearSearch 在线性列表中查找目标值。

Type Parameters:

  • T: any comparable type

Parameters:

  • slice: slice to search
  • target: target value to find

Returns:

  • int: index of target value, -1 if not found

Example:

strings := []string{"a", "b", "c"}
LLinearSearch(strings, "b")  // returns 1

func LMergeSort

func LMergeSort(nums []int) []int

LMergeSort 使用归并排序算法对整数切片进行排序(升序),返回新切片。

Parameters:

  • nums: 待排序的整数切片

Returns:

  • []int: 排序后的新切片(不修改原切片)

func LQuickSort

func LQuickSort(nums []int)

LQuickSort 使用快速排序算法对整数切片进行排序(升序),会修改原切片。

Parameters:

  • nums: 待排序的整数切片

Example:

nums := []int{5, 2, 8, 1, 9}
LQuickSort(nums)
// nums = []int{1, 2, 5, 8, 9}

func LessOrEqual

func LessOrEqual[T constraints.Ordered](left, right T) bool

LessOrEqual 检查 left 是否小于或等于 right。

Type Parameters:

  • T: 支持比较运算的类型 (numeric types)

Parameters:

  • left: 左值
  • right: 右值

Returns:

  • bool: left <= right 返回 true

Example:

LessOrEqual(1, 2)    // true
LessOrEqual(2, 2)    // true
LessOrEqual(3, 2)    // false

func LessThan

func LessThan[T constraints.Ordered](left, right T) bool

LessThan 检查 left 是否小于 right。

Type Parameters:

  • T: 支持比较运算的类型 (numeric types)

Parameters:

  • left: 左值
  • right: 右值

Returns:

  • bool: left < right 返回 true

Example:

LessThan(1, 2)    // true
LessThan(3, 3)    // false

func L日志_信息

func L日志_信息(日志 *zap.Logger, 消息 string, 字段 ...zap.Field)

L日志_信息 输出 Info 级别的日志。

参数:

  • 日志: zap 日志实例
  • 消息: 日志消息
  • 字段: 可选的结构化字段

func L日志_创建开发日志

func L日志_创建开发日志() (*zap.Logger, error)

L日志_创建开发日志 创建适用于开发环境的日志实例。 输出到控制台,使用人类可读的格式,日志级别为 Debug。

返回:

  • *zap.Logger: zap 日志实例
  • error: 创建失败时返回错误

func L日志_创建生产日志

func L日志_创建生产日志() (*zap.Logger, error)

L日志_创建生产日志 创建适用于生产环境的日志实例。 输出 JSON 格式日志,日志级别为 Info,自带调用者信息和堆栈跟踪。

返回:

  • *zap.Logger: zap 日志实例
  • error: 创建失败时返回错误

func L日志_创建自定义日志

func L日志_创建自定义日志(日志级别 int, 输出路径 []string, JSON格式 bool) (*zap.Logger, error)

L日志_创建自定义日志 创建自定义配置的日志实例。 可指定日志级别、输出路径、编码格式等。

参数:

  • 日志级别: 0=Debug, 1=Info, 2=Warn, 3=Error
  • 输出路径: 日志文件路径列表,如 []string{"stdout", "/var/log/app.log"}
  • JSON格式: true 使用 JSON 编码,false 使用 Console 编码

返回:

  • *zap.Logger: zap 日志实例
  • error: 创建失败时返回错误

func L日志_同步

func L日志_同步(日志 *zap.Logger) error

L日志_同步 刷新日志缓冲区,确保所有日志都已写入。 程序退出前应调用此函数。

参数:

  • 日志: zap 日志实例

返回:

  • error: 同步失败时返回错误

func L日志_字符串

func L日志_字符串(键 string, 值 string) zap.Field

L日志_字符串 创建字符串类型的结构化日志字段。

参数:

  • 键: 字段键名
  • 值: 字段值

返回:

  • zap.Field: zap 字段

func L日志_整数

func L日志_整数(键 string, 值 int) zap.Field

L日志_整数 创建整数类型的结构化日志字段。

参数:

  • 键: 字段键名
  • 值: 字段值

返回:

  • zap.Field: zap 字段

func L日志_警告

func L日志_警告(日志 *zap.Logger, 消息 string, 字段 ...zap.Field)

L日志_警告 输出 Warn 级别的日志。

参数:

  • 日志: zap 日志实例
  • 消息: 日志消息
  • 字段: 可选的结构化字段

func L日志_调试

func L日志_调试(日志 *zap.Logger, 消息 string, 字段 ...zap.Field)

L日志_调试 输出 Debug 级别的日志。

参数:

  • 日志: zap 日志实例
  • 消息: 日志消息
  • 字段: 可选的结构化字段,如 zap.String("key", "value")

func L日志_错误

func L日志_错误(日志 *zap.Logger, 消息 string, 字段 ...zap.Field)

L日志_错误 输出 Error 级别的日志。

参数:

  • 日志: zap 日志实例
  • 消息: 日志消息
  • 字段: 可选的结构化字段

func L日志_错误类型

func L日志_错误类型(键 string, 值 error) zap.Field

L日志_错误类型 创建 error 类型的结构化日志字段。

参数:

  • 键: 字段键名
  • 值: 错误值

返回:

  • zap.Field: zap 字段

func MapLength

func MapLength[K comparable, V any](m map[K]V) int

MapLength gets the length of a Map (number of key-value pairs).

Type Parameters:

  • K: key type
  • V: value type

Parameters:

  • m: Map to query

Returns:

  • int: Map length

Example:

m := map[string]int{"a": 1, "b": 2}
MapLength(m)  // 2

func MapSlice

func MapSlice[T any, U any](slice []T, fn func(T) U) []U

Map applies transformation function to each element in slice.

Type Parameters:

  • T: source element type
  • U: transformed element type

Parameters:

  • slice: source slice
  • fn: transformation function

Returns:

  • []U: transformed slice

Example:

nums := []int{1, 2, 3}
Map(nums, func(n int) string { return strconv.Itoa(n) })
// []string{"1", "2", "3"}

func MapToPairs

func MapToPairs[K comparable, V any](m map[K]V) [][]interface{}

MapToPairs converts a Map to a 2D slice [[key, value], ...].

Type Parameters:

  • K: key type
  • V: value type

Parameters:

  • m: Map to convert

Returns:

  • [][]interface{}: 2D slice

Example:

m := map[string]int{"a": 1, "b": 2}
MapToPairs(m)  // [][]interface{}{{"a", 1}, {"b", 2}}

func MapValues

func MapValues[K comparable, V any, U any](m map[K]V, fn func(V) U) map[K]U

MapValues applies transformation function to all values in Map.

Type Parameters:

  • K: key type (must be comparable)
  • V: source value type
  • U: transformed value type

Parameters:

  • m: Map to transform
  • fn: transformation function

Returns:

  • map[K]U: transformed Map

Example:

m := map[string]int{"a": 1, "b": 2}
MapValues(m, func(v int) string { return strconv.Itoa(v) })
// map[string]string{"a": "1", "b": "2"}

func Map_Struct转Map

func Map_Struct转Map(obj interface{}) map[string]interface{}

Map_Struct转Map 利用反射将结构体转换为 map[string]interface{}。 结构体字段如果带有 "mapstructure" tag,则使用 tag 值作为 map 的键名; 否则使用结构体字段的原始名称。

参数:

  • obj: 结构体实例(非指针)

返回:

  • map[string]interface{}: 转换后的 map

示例:

type User struct {
    Name string `mapstructure:"user_name"`
    Age  int
}
Map_Struct转Map(User{Name: "张三", Age: 25})
// map[string]interface{}{"user_name": "张三", "Age": 25}

func Map_取key整数数组

func Map_取key整数数组(m map[int]string) []int

Map_取key整数数组 从 map[int]string 中提取所有键名,返回整数数组。 预分配了 map 长度的数组容量,避免 append 时的内存重分配。

参数:

  • m: 整数键的 map

返回:

  • []int: 所有键名组成的数组

func Map_转post数据

func Map_转post数据(URL参数 map[string]string, 是否url编码 bool) string

Map_转post数据 将 map[string]string 转换为 POST 表单格式的字符串。 格式:key1=value1&key2=value2

参数:

  • URL参数: 键值对 map
  • 是否url编码: true 时使用 url.Values.Encode 进行标准 URL 编码

返回:

  • string: 拼接后的 POST 数据字符串

func Map_键名是否存在

func Map_键名是否存在(m map[int]string, key int) bool

Map_键名是否存在 检查 map[int]string 中是否存在指定的键名。

参数:

  • m: 待检查的 map
  • key: 要查找的键名

返回:

  • bool: true 表示键名存在

func MathAverage

func MathAverage(nums []int) float64

MathAverage calculates the average of an integer slice.

Parameters:

  • nums: integer slice to calculate average

Returns:

  • float64: average value; 0 if empty slice

Example:

MathAverage([]int{1, 2, 3, 4, 5})  // 3.0

func MathMax

func MathMax(nums []int) int

MathMax finds the maximum value in an integer slice.

Parameters:

  • nums: integer slice to find maximum

Returns:

  • int: maximum value; MinInt if empty

Example:

MathMax([]int{1, 5, 3, 9, 2})  // 9

func MathMin

func MathMin(nums []int) int

MathMin finds the minimum value in an integer slice.

Parameters:

  • nums: integer slice to find minimum

Returns:

  • int: minimum value; MaxInt if empty

Example:

MathMin([]int{1, 5, 3, 9, 2})  // 1

func MathSum

func MathSum(nums []int) int

MathSum calculates the sum of an integer slice.

Parameters:

  • nums: integer slice to sum

Returns:

  • int: sum of all elements

Example:

MathSum([]int{1, 2, 3, 4, 5})  // 15

func MergeMaps

func MergeMaps[K comparable, V any](maps ...map[K]V) map[K]V

MergeMaps merges multiple Maps, later Maps will override same keys from earlier Maps.

Type Parameters:

  • K: key type (must be comparable)
  • V: value type

Parameters:

  • maps: list of Maps to merge

Returns:

  • map[K]V: merged Map

Example:

m1 := map[string]int{"a": 1}
m2 := map[string]int{"b": 2}
MergeMaps(m1, m2)  // map[string]int{"a": 1, "b": 2}

func M命令行_取剩余参数

func M命令行_取剩余参数() []string

M命令行_取剩余参数 获取命令行中未被 flag 解析的位置参数。 必须在 M命令行_解析 之后调用。

返回:

  • []string: 未被解析的位置参数列表

func M命令行_取字符串参数

func M命令行_取字符串参数(短名称 string, 长名称 string, 默认值 string, 说明 string) *string

M命令行_取字符串参数 定义并获取一个字符串类型的命令行参数。 支持短参数名和长参数名两种形式,如 -n 和 -name。

参数:

  • 短名称: 短参数名,如 "n"
  • 长名称: 长参数名,如 "name"
  • 默认值: 参数未提供时的默认值
  • 说明: 参数的用法说明

返回:

  • *string: 指向参数值的指针,解析后通过 *指针 获取实际值

func M命令行_取小数参数

func M命令行_取小数参数(短名称 string, 长名称 string, 默认值 float64, 说明 string) *float64

M命令行_取小数参数 定义并获取一个浮点数类型的命令行参数。

参数:

  • 短名称: 短参数名,如 "r"
  • 长名称: 长参数名,如 "rate"
  • 默认值: 参数未提供时的默认值
  • 说明: 参数的用法说明

返回:

  • *float64: 指向参数值的指针

func M命令行_取布尔参数

func M命令行_取布尔参数(短名称 string, 长名称 string, 默认值 bool, 说明 string) *bool

M命令行_取布尔参数 定义并获取一个布尔类型的命令行参数。

参数:

  • 短名称: 短参数名,如 "v"
  • 长名称: 长参数名,如 "verbose"
  • 默认值: 参数未提供时的默认值
  • 说明: 参数的用法说明

返回:

  • *bool: 指向参数值的指针

func M命令行_取整数参数

func M命令行_取整数参数(短名称 string, 长名称 string, 默认值 int, 说明 string) *int

M命令行_取整数参数 定义并获取一个整数类型的命令行参数。

参数:

  • 短名称: 短参数名,如 "p"
  • 长名称: 长参数名,如 "port"
  • 默认值: 参数未提供时的默认值
  • 说明: 参数的用法说明

返回:

  • *int: 指向参数值的指针

func M命令行_取程序名

func M命令行_取程序名() string

M命令行_取程序名 获取当前运行的程序名称(os.Args[0])。

返回:

  • string: 程序名称或路径

func M命令行_显示默认用法

func M命令行_显示默认用法()

M命令行_显示默认用法 显示默认的命令行参数用法说明。

func M命令行_置用法

func M命令行_置用法(用法函数 func())

M命令行_置用法 设置命令行参数的用法说明。 当用户输入 -h 或 --help 时显示此说明。

参数:

  • 用法函数: 自定义的用法说明函数

func M命令行_解析

func M命令行_解析()

M命令行_解析 解析命令行参数。 调用 flag.Parse() 解析 os.Args[1:] 中的命令行参数。 应在定义所有命令行参数后调用此函数。

func M目录_创建

func M目录_创建(路径 string) error

M目录_创建 递归创建目录(含所有必要的父目录)。 目录已存在时不做任何操作,直接返回 nil。

参数:

  • 路径: 要创建的目录路径

返回:

  • error: 创建失败时返回错误信息

func M目录_删除

func M目录_删除(欲删除的目录名称 string) error

M目录_删除 递归删除指定目录及其所有内容(文件和子目录)。 等同于 rm -rf,请谨慎使用。

参数:

  • 欲删除的目录名称: 要删除的目录路径

返回:

  • error: 删除失败时返回错误信息

func M目录_取当前目录

func M目录_取当前目录() string

M目录_取当前目录 获取当前工作目录。

返回:

  • string: 当前工作目录的绝对路径

func M目录_取运行目录

func M目录_取运行目录() string

M目录_取运行目录 获取当前可执行文件所在的目录。 路径中的反斜杠会被替换为正斜杠。

返回:

  • string: 可执行文件所在目录的绝对路径

func M目录_是否存在

func M目录_是否存在(path string) (bool, error)

M目录_是否存在 检查指定路径的目录是否存在。

参数:

  • path: 目录路径

返回:

  • bool: true 表示目录存在
  • error: 路径存在但不是目录时返回错误;不存在时返回 nil

func M目录_枚举子目录

func M目录_枚举子目录(父文件夹路径 string, 子目录数组 *[]string, 是否带路径 bool, 是否继续向下枚举 bool) error

M目录_枚举子目录 枚举指定目录下的子目录,结果通过指针参数返回。 可选择是否带完整路径、是否递归枚举子目录的子目录。

参数:

  • 父文件夹路径: 要枚举的根目录路径
  • 子目录数组: 用于接收结果的字符串数组指针(会追加到现有内容)
  • 是否带路径: true 返回完整路径,false 仅返回目录名
  • 是否继续向下枚举: true 递归枚举所有层级的子目录

返回:

  • error: 枚举过程中遇到的错误

func N键值_关闭

func N键值_关闭(数据库 *buntdb.DB) error

N键值_关闭 关闭数据库,释放资源。 关闭前会自动将内存数据持久化到文件。

参数:

  • 数据库: 数据库实例

返回:

  • error: 关闭失败时返回错误

func N键值_创建索引

func N键值_创建索引(数据库 *buntdb.DB, 索引名 string, 模式 string) error

N键值_创建索引 为数据库创建索引,支持按 JSON 字段索引。 创建索引后可使用索引名进行高效查询。

参数:

  • 数据库: 数据库实例
  • 索引名: 索引名称
  • 模式: 索引模式,如 "name" 或 "user.name"(JSON 路径)

返回:

  • error: 创建失败时返回错误

func N键值_删除

func N键值_删除(数据库 *buntdb.DB, 键 string) error

N键值_删除 删除指定键。

参数:

  • 数据库: 数据库实例
  • 键: 要删除的键名

返回:

  • error: 删除失败时返回错误

func N键值_取值

func N键值_取值(数据库 *buntdb.DB, 键 string) (string, error)

N键值_取值 从数据库中获取指定键的值。

参数:

  • 数据库: 数据库实例
  • 键: 要获取的键名

返回:

  • string: 键对应的值;键不存在时返回空串
  • error: 键不存在或读取失败时返回错误

func N键值_打开

func N键值_打开(文件路径 string) (*buntdb.DB, error)

N键值_打开 打开或创建一个 BuntDB 数据库文件。 BuntDB 是基于内存的键值数据库,支持 JSON 操作、事务和索引。 数据会持久化到指定文件,文件不存在时自动创建。

参数:

  • 文件路径: 数据库文件路径,如 "data.db";空字符串则使用纯内存模式

返回:

  • *buntdb.DB: 数据库实例
  • error: 打开失败时返回错误

func N键值_置值

func N键值_置值(数据库 *buntdb.DB, 键 string, 值 string) error

N键值_置值 设置指定键的值。键不存在则创建,已存在则覆盖。

参数:

  • 数据库: 数据库实例
  • 键: 键名
  • 值: 键值

返回:

  • error: 设置失败时返回错误

func N键值_置值带过期

func N键值_置值带过期(数据库 *buntdb.DB, 键 string, 值 string, 过期秒数 float64) error

N键值_置值带过期 设置指定键的值,并设置过期时间。 过期后键值自动删除。

参数:

  • 数据库: 数据库实例
  • 键: 键名
  • 值: 键值
  • 过期秒数: 过期时间(秒),0 表示永不过期

返回:

  • error: 设置失败时返回错误

func N键值_遍历

func N键值_遍历(数据库 *buntdb.DB, 起始键 string, 结束键 string, 回调函数 func(键, 值 string) bool) error

N键值_遍历 遍历指定范围内的所有键值对。 起始和结束为空字符串时遍历所有键。

参数:

  • 数据库: 数据库实例
  • 起始键: 遍历起始键(包含),空字符串从头开始
  • 结束键: 遍历结束键(不包含),空字符串到末尾
  • 回调函数: 每个键值对的回调,返回 false 停止遍历

返回:

  • error: 遍历失败时返回错误

func PI

func PI() float64

PI returns the value of pi (π).

Returns:

  • float64: π ≈ 3.141592653589793

func PairsToMap

func PairsToMap(pairs [][]interface{}) map[interface{}]interface{}

PairsToMap converts a 2D slice to a Map.

Parameters:

  • pairs: 2D slice [[key, value], ...]

Returns:

  • map[interface{}]interface{}: converted Map

Example:

pairs := [][]interface{}{{"a", 1}, {"b", 2}}
PairsToMap(pairs)  // map[interface{}]interface{}{"a": 1, "b": 2}

func Pow

func Pow(base, exponent float64) float64

Pow calculates base raised to the power of exponent.

Parameters:

  • base: base number
  • exponent: exponent

Returns:

  • float64: base^exponent

Example:

Pow(2, 3)  // 8.0
Pow(5, 0)  // 1.0

func P对象池_取字节集

func P对象池_取字节集(数据 []byte) []byte

P对象池_取字节集 从对象池获取缓冲区,写入数据后取出字节集副本,再归还缓冲区。 适用于临时需要字节集切片的场景,减少 GC 压力。

参数:

  • 数据: 要写入缓冲区的数据

返回:

  • []byte: 数据的字节集副本

func P对象池_取文本

func P对象池_取文本(文本 string) string

P对象池_取文本 从对象池获取缓冲区,写入字符串后取出文本副本,再归还缓冲区。

参数:

  • 文本: 要写入缓冲区的字符串

返回:

  • string: 文本副本

func P对象池_放回

func P对象池_放回(缓冲区 *bytebufferpool.ByteBuffer)

P对象池_放回 将字节缓冲区归还到池中。 归还后缓冲区内容会被自动清空,不可再使用该指针。 每次获取后必须调用此函数归还,否则会导致内存泄漏。

参数:

  • 缓冲区: 之前通过 P对象池_获取 获取的缓冲区指针

func P对象池_获取

func P对象池_获取() *bytebufferpool.ByteBuffer

P对象池_获取 从字节缓冲池中获取一个字节缓冲区。 获取的缓冲区是空的(长度为0),可以安全写入。 使用完毕后必须调用 P对象池_放回 归还,避免内存泄漏。

返回:

  • *bytebufferpool.ByteBuffer: 空的字节缓冲区指针

func P配置_从文件读取

func P配置_从文件读取(文件路径 string) (*viper.Viper, error)

P配置_从文件读取 从指定配置文件中读取配置项。 支持 JSON/TOML/YAML/INI/properties 等格式,自动根据文件扩展名识别。

参数:

  • 文件路径: 配置文件的完整路径

返回:

  • *viper.Viper: viper 实例,可用于后续取值操作
  • error: 读取失败时返回错误

func P配置_从文件读取指定项

func P配置_从文件读取指定项(文件路径 string, 键名 string) (string, error)

P配置_从文件读取指定项 从配置文件中读取指定键的值,返回字符串。

参数:

  • 文件路径: 配置文件的完整路径
  • 键名: 配置项的键名,支持点号分隔的层级路径,如 "database.host"

返回:

  • string: 配置项的值
  • error: 读取失败时返回错误

func P配置_写回文件

func P配置_写回文件(v *viper.Viper) error

P配置_写回文件 将 viper 实例中的配置写回文件。

参数:

  • v: viper 实例

返回:

  • error: 写入失败时返回错误

func P配置_取值

func P配置_取值(v *viper.Viper, 键名 string) string

P配置_取值 从 viper 实例中获取字符串值。

参数:

  • v: viper 实例
  • 键名: 配置项的键名

返回:

  • string: 配置项的值

func P配置_取字符串切片

func P配置_取字符串切片(v *viper.Viper, 键名 string) []string

P配置_取字符串切片 从 viper 实例中获取字符串切片。

参数:

  • v: viper 实例
  • 键名: 配置项的键名

返回:

  • []string: 字符串切片

func P配置_取整数值

func P配置_取整数值(v *viper.Viper, 键名 string) int

P配置_取整数值 从 viper 实例中获取整数值。

参数:

  • v: viper 实例
  • 键名: 配置项的键名

返回:

  • int: 配置项的整数值

func P配置_取整数切片

func P配置_取整数切片(v *viper.Viper, 键名 string) []int

P配置_取整数切片 从 viper 实例中获取整数切片。

参数:

  • v: viper 实例
  • 键名: 配置项的键名

返回:

  • []int: 整数切片

func P配置_取浮点数值

func P配置_取浮点数值(v *viper.Viper, 键名 string) float64

P配置_取浮点数值 从 viper 实例中获取浮点数值。

参数:

  • v: viper 实例
  • 键名: 配置项的键名

返回:

  • float64: 配置项的浮点数值

func P配置_取逻辑值

func P配置_取逻辑值(v *viper.Viper, 键名 string) bool

P配置_取逻辑值 从 viper 实例中获取布尔值。

参数:

  • v: viper 实例
  • 键名: 配置项的键名

返回:

  • bool: 配置项的布尔值

func P配置_变更回调

func P配置_变更回调(v *viper.Viper, 回调 func())

P配置_变更回调 注册配置文件变更时的回调函数。 当监听到配置文件被修改时,自动调用回调函数。

参数:

  • v: viper 实例
  • 回调: 变更时执行的回调函数

func P配置_监听变更

func P配置_监听变更(v *viper.Viper)

P配置_监听变更 监听配置文件的变更,当文件被修改时自动重新加载。 需配合 P配置_变更回调 使用处理变更事件。

参数:

  • v: viper 实例

func P配置_绑定环境变量

func P配置_绑定环境变量(v *viper.Viper, 键名 string, 环境变量名 string)

P配置_绑定环境变量 将指定键绑定到环境变量。 读取配置时,若文件中无该键,则从环境变量中获取。

参数:

  • v: viper 实例
  • 键名: 配置项的键名
  • 环境变量名: 对应的环境变量名

func P配置_自动环境变量

func P配置_自动环境变量(v *viper.Viper, 前缀 string)

P配置_自动环境变量 开启自动环境变量绑定。 设置前缀后,所有键名会自动映射为 "前缀_键名" 格式的环境变量。

参数:

  • v: viper 实例
  • 前缀: 环境变量前缀,如 "MYAPP"

func P配置_设置值

func P配置_设置值(v *viper.Viper, 键名 string, 值 interface{})

P配置_设置值 在 viper 实例中设置指定键的值。 设置的值不会自动写入文件,需要调用 P配置_写回文件 持久化。

参数:

  • v: viper 实例
  • 键名: 配置项的键名
  • 值: 要设置的值

func Q取单条Cookie

func Q取单条Cookie(原Cookies, 单条Cookie名称 string) string

Q取单条Cookie 从 Cookie 字符串中提取指定名称的单条 Cookie 值。 Cookie 字符串格式为 "name1=value1; name2=value2"。

参数:

  • 原Cookies: 完整的 Cookie 字符串
  • 单条Cookie名称: 要提取的 Cookie 名称(不区分大小写)

返回:

  • string: Cookie 的值;未找到时返回空串

func Q取随机数

func Q取随机数(min, max int) int

Q取随机数 生成指定范围内的随机整数,包含边界值 [min, max]。 注意:Go 1.20+ 之前版本未自动初始化随机种子,高频调用可能产生相同结果。

参数:

  • min: 最小值(包含)
  • max: 最大值(包含)

返回:

  • int: [min, max] 范围内的随机整数

func Q权限_从文件创建

func Q权限_从文件创建(模型文件路径 string, 策略文件路径 string) (*casbin.Enforcer, error)

Q权限_从文件创建 从模型文件和策略文件创建权限管理器。 模型文件定义权限模型(如 RBAC、ABAC),策略文件存储具体的权限规则。

常用 RBAC 模型文件内容:

[request_definition]
r = sub, obj, act
[policy_definition]
p = sub, obj, act
[role_definition]
g = _, _
[policy_effect]
e = some(where (p.eft == allow))
[matchers]
m = g(r.sub, p.sub) && r.obj == p.obj && r.act == p.act

参数:

  • 模型文件路径: 权限模型文件路径,如 "model.conf"
  • 策略文件路径: 权限策略文件路径,如 "policy.csv"

返回:

  • *casbin.Enforcer: 权限管理器实例
  • error: 创建失败时返回错误

func Q权限_从文本创建

func Q权限_从文本创建(模型文本 string, 适配器 persist.Adapter) (*casbin.Enforcer, error)

Q权限_从文本创建 从模型文本和适配器创建权限管理器。 无需模型文件,直接传入模型文本字符串。

参数:

  • 模型文本: 权限模型文本内容
  • 适配器: 策略存储适配器,nil 则使用内存适配器

返回:

  • *casbin.Enforcer: 权限管理器实例
  • error: 创建失败时返回错误

func Q权限_保存策略

func Q权限_保存策略(管理器 *casbin.Enforcer) error

Q权限_保存策略 将当前内存中的策略保存到持久化存储。 使用文件适配器时,策略会写入 CSV 文件。

参数:

  • 管理器: 权限管理器实例

返回:

  • error: 保存失败时返回错误

func Q权限_创建内存

func Q权限_创建内存(模型文本 string) (*casbin.Enforcer, error)

Q权限_创建内存 从模型文本创建纯内存权限管理器(不持久化)。 适用于临时权限检查或测试场景。

参数:

  • 模型文本: 权限模型文本内容

返回:

  • *casbin.Enforcer: 权限管理器实例
  • error: 创建失败时返回错误

func Q权限_创建文件适配器

func Q权限_创建文件适配器(策略文件路径 string) *fileadapter.Adapter

Q权限_创建文件适配器 创建文件适配器,用于策略持久化。

参数:

  • 策略文件路径: CSV 格式的策略文件路径

返回:

  • *fileadapter.Adapter: 文件适配器实例

func Q权限_删除策略

func Q权限_删除策略(管理器 *casbin.Enforcer, 主体 string, 资源 string, 操作 string) (bool, error)

Q权限_删除策略 删除一条权限策略。

参数:

  • 管理器: 权限管理器实例
  • 主体: 主体标识
  • 资源: 资源标识
  • 操作: 操作标识

返回:

  • bool: true 表示策略被删除,false 表示策略不存在
  • error: 删除失败时返回错误

func Q权限_删除角色

func Q权限_删除角色(管理器 *casbin.Enforcer, 用户 string, 角色 string) (bool, error)

Q权限_删除角色 移除用户的指定角色。

参数:

  • 管理器: 权限管理器实例
  • 用户: 用户标识
  • 角色: 角色标识

返回:

  • bool: true 表示移除成功
  • error: 移除失败时返回错误

func Q权限_加载策略

func Q权限_加载策略(管理器 *casbin.Enforcer) error

Q权限_加载策略 从持久化存储重新加载策略。 用于外部修改了策略文件后刷新内存中的策略。

参数:

  • 管理器: 权限管理器实例

返回:

  • error: 加载失败时返回错误

func Q权限_取用户角色

func Q权限_取用户角色(管理器 *casbin.Enforcer, 用户 string) ([]string, error)

Q权限_取用户角色 获取用户的所有角色列表。

参数:

  • 管理器: 权限管理器实例
  • 用户: 用户标识

返回:

  • []string: 角色名称列表
  • error: 查询失败时返回错误

func Q权限_检查权限

func Q权限_检查权限(管理器 *casbin.Enforcer, 主体 string, 资源 string, 操作 string) (bool, error)

Q权限_检查权限 检查主体是否有权限对资源执行操作。 基于 RBAC/ABAC 模型进行权限判断。

参数:

  • 管理器: 权限管理器实例
  • 主体: 请求主体(用户/角色),如 "alice"
  • 资源: 目标资源,如 "data1"
  • 操作: 请求操作,如 "read"

返回:

  • bool: true 表示有权限,false 表示无权限
  • error: 检查失败时返回错误

func Q权限_添加策略

func Q权限_添加策略(管理器 *casbin.Enforcer, 主体 string, 资源 string, 操作 string) (bool, error)

Q权限_添加策略 添加一条权限策略。 添加后需调用 Q权限_保存策略 持久化到文件。

参数:

  • 管理器: 权限管理器实例
  • 主体: 主体标识
  • 资源: 资源标识
  • 操作: 操作标识

返回:

  • bool: true 表示策略是新添加的,false 表示策略已存在
  • error: 添加失败时返回错误

func Q权限_添加角色

func Q权限_添加角色(管理器 *casbin.Enforcer, 用户 string, 角色 string) (bool, error)

Q权限_添加角色 为用户分配角色。 在 RBAC 模型中使用,将用户绑定到角色。

参数:

  • 管理器: 权限管理器实例
  • 用户: 用户标识
  • 角色: 角色标识

返回:

  • bool: true 表示分配成功
  • error: 分配失败时返回错误

func RSA_公钥解密

func RSA_公钥解密(公钥 string, 密文 []byte) (明文字节集 []byte)

RSA_公钥解密 使用 RSA 公钥解密由私钥"加密"的数据。 这是 RSA_私钥加密 的逆操作,使用自定义的 publicDecrypt 实现。 支持解析 PKCS8 格式的公钥。

参数:

  • 公钥: PEM 格式的 RSA 公钥字符串
  • 密文: 待解密的密文字节集

返回:

  • 明文字节集: 解密后的明文字节集;解密失败返回空字节集

func RSA_私钥加密

func RSA_私钥加密(Rsa私钥 []byte, 明文 []byte) (base64密文 string)

RSA_私钥加密 使用 RSA 私钥进行"加密"(实际是签名操作)。 使用 PKCS1v15 填充方案,crypto.Hash(0) 表示不进行哈希预处理。 注意:私钥加密通常用于签名场景,而非保密场景。

参数:

  • Rsa私钥: PEM 格式的 RSA 私钥字节集
  • 明文: 待加密的明文字节集

返回:

  • base64密文: Base64 编码的加密结果;加密失败返回空串

func Repeat

func Repeat(s string, count int) string

Repeat repeats a string specified number of times.

Parameters:

  • s: string to repeat
  • count: number of repetitions

Returns:

  • string: repeated string

Example:

Repeat("abc", 3)  // "abcabcabc"

func ReplaceAll

func ReplaceAll(s, old, new string) string

ReplaceAll replaces all occurrences of a substring in a string.

Parameters:

  • s: source string
  • old: substring to replace
  • new: replacement string

Returns:

  • string: replaced string

Example:

ReplaceAll("hello world world", "world", "go")  // "hello go go"

func Retry

func Retry[T any](fn func() (T, error), maxRetries int, interval time.Duration) (T, error)

Retry executes a function with specified maximum retries and interval, automatically retries on failure.

Type Parameters:

  • T: return value type

Parameters:

  • fn: function to execute, returns value and error
  • maxRetries: maximum number of retries
  • interval: wait time between retries

Returns:

  • T: return value on success
  • error: last error if all retries fail

Example:

result, err := Retry(func() (string, error) {
	return "success", nil
}, 3, time.Second)

func RetryWithCondition

func RetryWithCondition[T any](fn func() (T, error), shouldRetry func(error) bool, maxRetries int, interval time.Duration) (T, error)

RetryWithCondition implements retry based on error type condition.

Type Parameters:

  • T: return value type

Parameters:

  • fn: function to execute, returns value and error
  • shouldRetry: function to determine if retry should happen, takes current error
  • maxRetries: maximum number of retries
  • interval: wait time between retries

Returns:

  • T: return value on success
  • error: last error if all retries fail

Example:

result, err := RetryWithCondition(
	func() (string, error) {
		return "success", nil
	},
	func(err error) bool {
		return err != nil && err.Error() == "retryable"
	},
	3,
	time.Second,
)

func Reverse

func Reverse(nums []int)

Reverse reverses the order of an integer slice, modifies the original slice.

Parameters:

  • nums: integer slice to reverse

Example:

nums := []int{1, 2, 3, 4, 5}
Reverse(nums)
// nums = []int{5, 4, 3, 2, 1}

func ReverseMap

func ReverseMap[K comparable, V comparable](m map[K]V) map[V]K

ReverseMap creates a reversed Map where original values become keys and original keys become values.

Type Parameters:

  • K: original key type
  • V: original value type (must be comparable as it becomes key)

Parameters:

  • m: Map to reverse

Returns:

  • map[V]K: reversed Map

Note:

If original Map has duplicate values, later keys will override earlier ones.

Example:

m := map[string]int{"a": 1, "b": 2}
ReverseMap(m)  // map[int]string{1: "a", 2: "b"}

func Rsa_GetKey

func Rsa_GetKey() (err error, PublicKey string, PrivateKey string)

Rsa_GetKey 生成 1024 位的 RSA 公钥/私钥对。 返回 PEM 格式的公钥和私钥字符串。

返回:

  • error: 生成失败时的错误信息
  • PublicKey: PEM 格式的 PKCS8 公钥
  • PrivateKey: PEM 格式的 PKCS1 私钥

func Rsa_公钥加密

func Rsa_公钥加密(公钥 string, 加密内容 []byte) (base64密文 string)

Rsa_公钥加密 使用 RSA 公钥加密数据,返回 Base64 编码的密文。 支持解析 PKCS8 格式的公钥(最常见的公钥格式)。

参数:

  • 公钥: PEM 格式的 RSA 公钥字符串
  • 加密内容: 待加密的明文字节集

返回:

  • base64密文: Base64 编码的加密结果;加密失败返回空串

func Rsa_私钥签名

func Rsa_私钥签名(base64后明文 string, RSA私钥 string) string

Rsa_私钥签名 使用 RSA 私钥对数据进行 MD5 签名。 签名流程:对明文取 MD5 哈希 → 使用 PKCS1v15 填充方案签名 → 返回大写十六进制字符串。

参数:

  • base64后明文: 待签名的明文数据(Base64 编码前的原始文本)
  • RSA私钥: PEM 格式的 RSA 私钥字符串

返回:

  • string: 大写十六进制格式的签名值;签名失败返回空串

func Rsa_私钥解密

func Rsa_私钥解密(Rsa私钥 []byte, 加密数据 []byte) string

Rsa_私钥解密 使用 RSA 私钥解密数据,返回解密后的字符串。 内部调用 Rsa_私钥解密2 并将结果转换为字符串。

参数:

  • Rsa私钥: PEM 格式的 RSA 私钥字节集
  • 加密数据: 待解密的密文字节集

返回:

  • string: 解密后的明文字符串;解密失败返回空串

func Rsa_私钥解密2

func Rsa_私钥解密2(Rsa私钥 []byte, 加密数据 []byte) []byte

Rsa_私钥解密2 使用 RSA 私钥解密数据,返回解密后的字节集。 使用 PKCS1v15 填充方案进行解密。

参数:

  • Rsa私钥: PEM 格式的 RSA 私钥字节集
  • 加密数据: 待解密的密文字节集

返回:

  • []byte: 解密后的明文字节集;解密失败返回空字节集

func R日期_到文本

func R日期_到文本(时间 time.Time, 格式 string) string

R日期_到文本 将 time.Time 格式化为指定布局的字符串。 使用 Go 标准的时间布局格式,如 "2006-01-02 15:04:05"。

参数:

  • 时间: 时间对象
  • 格式: Go 时间布局字符串,如 "2006-01-02"

返回:

  • string: 格式化后的时间字符串

func R日期_取日期部分

func R日期_取日期部分(时间 time.Time) string

R日期_取日期部分 从 time.Time 中提取日期部分(年月日)。

参数:

  • 时间: 时间对象

返回:

  • string: 日期部分字符串,格式 "2006-01-02"

func R日期_取时间戳

func R日期_取时间戳(时间 time.Time) int64

R日期_取时间戳 将 time.Time 转换为 Unix 时间戳(秒)。

参数:

  • 时间: 时间对象

返回:

  • int64: Unix 时间戳(秒)

func R日期_取时间部分

func R日期_取时间部分(时间 time.Time) string

R日期_取时间部分 从 time.Time 中提取时间部分(时分秒)。

参数:

  • 时间: 时间对象

返回:

  • string: 时间部分字符串,格式 "15:04:05"

func R日期_取格式名称

func R日期_取格式名称(日期文本 string) string

R日期_取格式名称 获取日期时间字符串对应的 Go 时间格式名称。 返回可用于 time.Parse 的格式字符串,如 "2006-01-02 15:04:05"。

参数:

  • 日期文本: 日期时间字符串

返回:

  • string: Go 时间格式字符串;无法识别时返回空串

func R日期_取毫秒时间戳

func R日期_取毫秒时间戳(时间 time.Time) int64

R日期_取毫秒时间戳 将 time.Time 转换为 Unix 毫秒时间戳。

参数:

  • 时间: 时间对象

返回:

  • int64: Unix 毫秒时间戳

func R日期_智能解析

func R日期_智能解析(日期文本 string) (time.Time, error)

R日期_智能解析 自动识别日期时间字符串的格式并解析为 time.Time。 支持绝大多数常见的日期时间格式,无需预先指定格式字符串。 基于 araddon/dateparse 库实现,支持中文日期、RFC3339、ISO8601 等格式。

参数:

  • 日期文本: 日期时间字符串,如 "2024-01-15"、"2024/01/15 10:30:00"、"Jan 15, 2024"

返回:

  • time.Time: 解析后的时间对象
  • error: 解析失败时返回错误信息

func R日期_智能解析严格

func R日期_智能解析严格(日期文本 string) (time.Time, error)

R日期_智能解析严格 以严格模式解析日期时间字符串。 严格模式下,对格式匹配更加严格,减少误解析的可能性。

参数:

  • 日期文本: 日期时间字符串

返回:

  • time.Time: 解析后的时间对象
  • error: 解析失败时返回错误信息

func R日期_智能解析本地

func R日期_智能解析本地(日期文本 string) (time.Time, error)

R日期_智能解析本地 自动识别日期时间字符串格式,解析为本地时区的时间。 与 R日期_智能解析 类似,但返回本地时区而非 UTC 时区的时间。

参数:

  • 日期文本: 日期时间字符串

返回:

  • time.Time: 本地时区的时间对象
  • error: 解析失败时返回错误信息

func SafeGet

func SafeGet[K comparable, V any](m map[K]V, key K, defaultVal V) V

SafeGet safely retrieves a value from Map, returns default value if key doesn't exist.

Type Parameters:

  • K: key type (must be comparable)
  • V: value type

Parameters:

  • m: Map to query
  • key: key to search for
  • defaultVal: default value to return if key doesn't exist

Returns:

  • V: value from Map or default value

Example:

m := map[string]int{"a": 1, "b": 2}
SafeGet(m, "a", 0)  // 1
SafeGet(m, "c", 0)  // 0

func SliceDeduplicate

func SliceDeduplicate(nums []int) []int

SliceDeduplicate removes duplicate elements from an integer slice, maintaining original order.

Parameters:

  • nums: integer slice to deduplicate

Returns:

  • []int: deduplicated integer slice

Example:

SliceDeduplicate([]int{1, 2, 2, 3, 4, 4, 5})  // []int{1, 2, 3, 4, 5}

func SnakeToCamel

func SnakeToCamel(s string) string

SnakeToCamel converts snake_case naming to camelCase (first letter lowercase).

Parameters:

  • s: snake_case string to convert

Returns:

  • string: camelCase string

Example:

SnakeToCamel("hello_world")  // "helloWorld"
SnakeToCamel("user_name")     // "userName"

func Sort

func Sort(nums []int)

Sort sorts an integer slice using quick sort (ascending), modifies the original slice.

Parameters:

  • nums: integer slice to sort

Example:

nums := []int{5, 2, 8, 1, 9}
Sort(nums)
// nums = []int{1, 2, 5, 8, 9}

func SortDescending

func SortDescending(nums []int)

SortDescending sorts an integer slice using quick sort (descending), modifies the original slice.

Parameters:

  • nums: integer slice to sort

Example:

nums := []int{5, 2, 8, 1, 9}
SortDescending(nums)
// nums = []int{9, 8, 5, 2, 1}

func Split

func Split(s, sep string) []string

Split splits a string by separator into string slice.

Parameters:

  • s: string to split
  • sep: separator

Returns:

  • []string: split string slice

Example:

Split("a,b,c", ",")  // []string{"a", "b", "c"}

func Sqrt

func Sqrt(n float64) float64

Sqrt calculates the square root of a given number.

Parameters:

  • n: number to calculate square root

Returns:

  • float64: square root of n

Example:

Sqrt(16)  // 4.0
Sqrt(2)   // 1.414...

func StringReverse

func StringReverse(s string) string

StringReverse reverses the order of characters in a string.

Parameters:

  • s: string to reverse

Returns:

  • string: reversed string

Example:

StringReverse("hello")  // "olleh"

func Substring

func Substring(s string, start int) string

Substring extracts a substring starting from specified position.

Parameters:

  • s: source string
  • start: start position (inclusive)

Returns:

  • string: extracted substring

Example:

Substring("hello world", 6)  // "world"

func SubstringLength

func SubstringLength(s string, start, length int) string

SubstringLength extracts a substring of specified length from start position.

Parameters:

  • s: source string
  • start: start position (inclusive)
  • length: extraction length

Returns:

  • string: extracted substring

Example:

SubstringLength("hello world", 0, 5)  // "hello"

func S三元

func S三元[T any](value bool, string1, string2 T) T

S三元 泛型三元运算符,根据条件返回两个值中的一个。 类似其他语言的 condition ? a : b 语法。

类型参数:

  • T: 任意类型

参数:

  • value: 条件表达式,true 时返回 string1,false 时返回 string2
  • string1: 条件为真时的返回值
  • string2: 条件为假时的返回值

返回:

  • T: 根据条件选中的值

示例:

S三元(true, "是", "否")  // "是"
S三元(false, 1, 2)       // 2

func S数组_乱序

func S数组_乱序[T comparable](数组 []T) []T

S数组_乱序 泛型数组随机打乱顺序(Fisher-Yates 洗牌算法)。 返回乱序后的新数组,不修改原数组。

类型参数:

  • T: 可比较的类型

参数:

  • 数组: 待打乱的数组

返回:

  • []T: 乱序后的新数组

func S数组_到文本

func S数组_到文本(array []interface{}) string

S数组_到文本 将 interface{} 数组转换为逗号分隔的文本。 去除方括号,用逗号替换空格分隔符。

参数:

  • array: 待转换的 interface{} 数组

返回:

  • string: 逗号分隔的文本

func S数组_去重复

func S数组_去重复[T comparable](数组 []T) []T

S数组_去重复 泛型数组去重,保持元素首次出现的顺序。

类型参数:

  • T: 可比较的类型

参数:

  • 数组: 待去重的数组

返回:

  • []T: 去重后的新数组

func S数组_反转

func S数组_反转(反转的数组切片 []interface{})

S数组_反转 原地反转 interface{} 数组的元素顺序。 直接修改传入的切片,无需返回值。

参数:

  • 反转的数组切片: 待反转的数组切片指针

func S数组_取差集

func S数组_取差集(a, b []int) []int

S数组_取差集 获取数组 a 中有但数组 b 中没有的元素。

参数:

  • a: 源整数数组
  • b: 待排除的整数数组

返回:

  • []int: 差集结果数组

func S数组_取文本出现次数

func S数组_取文本出现次数(参数_数组 []string, 参数_成员 string) int

S数组_取文本出现次数 统计指定成员在字符串数组中出现的次数。

参数:

  • 参数_数组: 源字符串数组
  • 参数_成员: 要统计的成员

返回:

  • int: 出现次数

func S数组_取文本索引

func S数组_取文本索引(文本数组 []string, 文本 string) int

S数组_取文本索引 查找文本在字符串数组中的索引位置。

参数:

  • 文本数组: 源字符串数组
  • 文本: 要查找的文本

返回:

  • int: 找到的索引(从 0 开始);未找到返回 -1

func S数组_取随机成员

func S数组_取随机成员(源数组 []string, 数量 int) []string

S数组_取随机成员 从源数组中随机选取指定数量的成员,不重复选取。 如果请求数量超过数组长度,自动调整为数组长度。

参数:

  • 源数组: 候选字符串数组
  • 数量: 要选取的成员数量

返回:

  • []string: 随机选取的成员数组

func S数组_合并文本

func S数组_合并文本[T comparable](数组 []T, 连接字符 string) string

S数组_合并文本 泛型数组合并为文本,用指定连接字符连接。 每个元素通过 D到文本 转换为字符串后拼接。

类型参数:

  • T: 可比较的类型

参数:

  • 数组: 待合并的泛型数组
  • 连接字符: 元素之间的连接符

返回:

  • string: 合并后的文本

func S数组_排序整数

func S数组_排序整数(arr []int) []int

S数组_排序整数 对整数数组进行升序排序,返回排序后的新数组。

参数:

  • arr: 待排序的整数数组

返回:

  • []int: 排序后的新数组

func S数组_排序文本

func S数组_排序文本(arr []string) []string

S数组_排序文本 对字符串数组进行字典序升序排序,返回排序后的新数组。

参数:

  • arr: 待排序的字符串数组

返回:

  • []string: 排序后的新数组

func S数组_整数取差集

func S数组_整数取差集(int1 []int, int2 []int) []int

S数组_整数取差集 获取数组2中有但数组1中没有的成员。

参数:

  • int1: 基准整数数组
  • int2: 待比较的整数数组

返回:

  • []int: 差集结果数组

func S数组_整数是否存在

func S数组_整数是否存在(数组 []int, 整数 int) bool

S数组_整数是否存在 检查整数数组中是否包含指定整数。

参数:

  • 数组: 源整数数组
  • 整数: 要查找的整数

返回:

  • bool: true 表示存在

func S数组_是否为空

func S数组_是否为空(list []string) (isEmpty bool)

S数组_是否为空 判断字符串数组是否为空或所有元素都是空白字符串。 空数组返回 true,所有元素均为空格/空串也返回 true。

参数:

  • list: 待判断的字符串数组

返回:

  • bool: true 表示数组为空或全为空白

func S数组_是否存在

func S数组_是否存在[T comparable](数组 []T, 元素 T) bool

S数组_是否存在 泛型检查数组中是否包含指定元素。

类型参数:

  • T: 可比较的类型

参数:

  • 数组: 源数组
  • 元素: 要查找的元素

返回:

  • bool: true 表示存在

func S数组_求平均值

func S数组_求平均值(参数 []int) int

S数组_求平均值 计算整数数组的平均值(整数除法,向下取整)。

参数:

  • 参数: 整数数组

返回:

  • int: 平均值

func S时间_取HTTP网络时间

func S时间_取HTTP网络时间() time.Time

S时间_取HTTP网络时间 通过 HTTP 请求从世界时间 API 获取网络时间。 适用于 NTP 端口被封锁但 HTTP 可用的网络环境。

返回:

  • time.Time: 网络标准时间;获取失败返回零值

func S时间_取日期

func S时间_取日期() string

S时间_取日期 获取当前日期,格式为 "2006-01-02"。

返回:

  • string: 当前日期字符串

func S时间_取时间

func S时间_取时间() string

S时间_取时间 获取当前时间,格式为 "15:04:05"。

返回:

  • string: 当前时间字符串

func S时间_取星期

func S时间_取星期() string

S时间_取星期 获取当前日期是星期几的中文名称。

返回:

  • string: 星期名称(星期日~星期六)

func S时间_取月份天数

func S时间_取月份天数(年, 月 int) int

S时间_取月份天数 获取指定年份和月份的天数。

参数:

  • 年: 年份,如 2024
  • 月: 月份(1-12)

返回:

  • int: 该月天数;月份无效返回 0

func S时间_取本地与网络时差

func S时间_取本地与网络时差(服务器 string) int64

S时间_取本地与网络时差 获取本地时间与网络时间的差值(秒)。 正值表示本地时间快于网络时间,负值表示本地时间慢于网络时间。

参数:

  • 服务器: NTP 服务器地址;空字符串使用默认服务器

返回:

  • int64: 时差(秒);获取失败返回 0

func S时间_取现行时间

func S时间_取现行时间() string

S时间_取现行时间 获取当前系统日期和时间,格式为 "2006-01-02 15:04:05"。

返回:

  • string: 格式化的当前时间字符串

func S时间_取现行时间戳

func S时间_取现行时间戳() int64

S时间_取现行时间戳 获取当前时间的 10 位秒级时间戳。

返回:

  • int64: 10 位秒级时间戳

func S时间_取现行时间戳13

func S时间_取现行时间戳13() int64

S时间_取现行时间戳13 获取当前时间的 13 位毫秒级时间戳。

返回:

  • int64: 13 位毫秒级时间戳

func S时间_取网络时间

func S时间_取网络时间(服务器 string) time.Time

S时间_取网络时间 通过 NTP 协议从指定 NTP 服务器获取网络标准时间。 使用 SNTP 协议(RFC 4330)与 NTP 服务器通信,获取精确的网络时间。

参数:

  • 服务器: NTP 服务器地址,如 "ntp.aliyun.com"、"time.windows.com";空字符串使用默认服务器

返回:

  • time.Time: 网络标准时间;获取失败返回零值

func S时间_取网络时间戳

func S时间_取网络时间戳(服务器 string) int64

S时间_取网络时间戳 通过 NTP 协议获取网络标准时间的 10 位秒级时间戳。

参数:

  • 服务器: NTP 服务器地址;空字符串使用默认服务器

返回:

  • int64: 10 位秒级时间戳;获取失败返回 0

func S时间_取网络时间文本

func S时间_取网络时间文本(服务器 string) string

S时间_取网络时间文本 通过 NTP 协议获取网络标准时间并格式化为文本。

参数:

  • 服务器: NTP 服务器地址;空字符串使用默认服务器

返回:

  • string: 格式为 "2006-01-02 15:04:05" 的网络时间字符串;获取失败返回空字符串

func S时间_文本到时间戳

func S时间_文本到时间戳(时间文本 string) int

S时间_文本到时间戳 将时间文本转换为 10 位 Unix 时间戳(秒)。 使用本地时区解析,格式必须为 "2006-01-02 15:04:05"。

参数:

  • 时间文本: 格式为 "2006-01-02 15:04:05" 的时间字符串

返回:

  • int: 10 位 Unix 时间戳;解析失败返回 0

func S时间_时间到时间戳

func S时间_时间到时间戳(时间 string) int64

S时间_时间到时间戳 将格式化的时间字符串转换为 10 位秒级时间戳。 使用 UTC 时区解析,与 S时间_文本到时间戳(本地时区)可能有时区差异。

参数:

  • 时间: 格式为 "2006-01-02 15:04:05" 的时间字符串

返回:

  • int64: 10 位秒级时间戳;解析失败返回 0

func S时间_时间戳13到时间

func S时间_时间戳13到时间(时间戳 int64) string

S时间_时间戳13到时间 将 13 位毫秒级时间戳转换为格式化的时间字符串。

参数:

  • 时间戳: 13 位毫秒级时间戳

返回:

  • string: 格式为 "2006-01-02 15:04:05" 的时间字符串

func S时间_时间戳到时间

func S时间_时间戳到时间(时间戳 int64) string

S时间_时间戳到时间 将 10 位秒级时间戳转换为格式化的时间字符串。

参数:

  • 时间戳: 10 位秒级时间戳

返回:

  • string: 格式为 "2006-01-02 15:04:05" 的时间字符串

func S时间_时间戳格式化

func S时间_时间戳格式化(format string, 时间戳 int64) string

S时间_时间戳格式化 使用自定义格式字符串格式化时间戳。 支持的占位符:y/Y=年, m/M=月, d/D=日, h=12小时制, H=24小时制, i=分, s=秒, t=am/pm, T=AM/PM。 时间戳为 0 时使用当前时间。

参数:

  • format: 自定义格式字符串(如 "Y-m-d H:i:s")
  • 时间戳: 10 位秒级时间戳,0 表示当前时间

返回:

  • string: 格式化后的时间字符串

func S时间_是否闰年

func S时间_是否闰年(年 int) bool

S时间_是否闰年 判断指定年份是否为闰年。

参数:

  • 年: 年份,如 2024

返回:

  • bool: 闰年返回 true,平年返回 false

func S时间_秒转时间文本

func S时间_秒转时间文本(秒 int64) string

S时间_秒转时间文本 将秒数转换为中文可读的时间文本。 例如:3661 → "1时1分1秒",31536000 → "1年"。 只显示非零的时间单位,所有单位为零时显示"0秒"。

参数:

  • 秒: 总秒数

返回:

  • string: 中文格式的时间文本(如 "1年2月3天4时5分6秒")

func S时间_计算时间差

func S时间_计算时间差(开始时间戳, 结束时间戳 int64) string

S时间_计算时间差 计算两个时间戳之间的时间差,返回中文可读文本。

参数:

  • 开始时间戳: 10 位秒级时间戳
  • 结束时间戳: 10 位秒级时间戳

返回:

  • string: 中文格式的时间差文本(如 "1时2分3秒")

func S是否为数组

func S是否为数组(通用型变量 interface{}) bool

S是否为数组 判断通用型变量是否为数组或切片类型。 使用反射检查值的 Kind 是否为 Array 或 Slice。

参数:

  • 通用型变量: 待判断的值

返回:

  • bool: true 表示是数组/切片类型

func TakeFirstN

func TakeFirstN[T any](slice []T, n int) []T

TakeFirstN gets the first N elements from a slice.

Type Parameters:

  • T: any type

Parameters:

  • slice: source slice
  • n: number of elements to get

Returns:

  • []T: first N elements

Example:

TakeFirstN([]int{1, 2, 3, 4, 5}, 3)  // []int{1, 2, 3}

func TakeLastN

func TakeLastN[T any](slice []T, n int) []T

TakeLastN gets the last N elements from a slice.

Type Parameters:

  • T: any type

Parameters:

  • slice: source slice
  • n: number of elements to get

Returns:

  • []T: last N elements

Example:

TakeLastN([]int{1, 2, 3, 4, 5}, 3)  // []int{3, 4, 5}

func ToLower

func ToLower(s string) string

ToLower converts a string to lowercase.

Parameters:

  • s: string to convert

Returns:

  • string: lowercase string

Example:

ToLower("Hello World")  // "hello world"

func ToUpper

func ToUpper(s string) string

ToUpper converts a string to uppercase.

Parameters:

  • s: string to convert

Returns:

  • string: uppercase string

Example:

ToUpper("Hello World")  // "HELLO WORLD"

func TrimLeft

func TrimLeft(s string) string

TrimLeft removes all leading spaces from a string.

Parameters:

  • s: string to process

Returns:

  • string: string with leading spaces removed

Example:

TrimLeft("  hello world")  // "hello world"

func TrimRight

func TrimRight(s string) string

TrimRight removes all trailing spaces from a string.

Parameters:

  • s: string to process

Returns:

  • string: string with trailing spaces removed

Example:

TrimRight("hello world  ")  // "hello world"

func TrimSpace

func TrimSpace(s string) string

TrimSpace removes leading and trailing spaces from a string.

Parameters:

  • s: string to process

Returns:

  • string: string with leading/trailing spaces removed

Example:

TrimSpace("  hello world  ")  // "hello world"

func T图片_从字节读取

func T图片_从字节读取(数据 []byte) (image.Image, error)

T图片_从字节读取 从字节切片读取图片,自动识别格式。

参数:

  • 数据: 图片的字节数据

返回:

  • image.Image: 解码后的图片对象
  • error: 解码失败时返回错误

func T图片_从读取器读取

func T图片_从读取器读取(读取器 io.Reader) (image.Image, string, error)

T图片_从读取器读取 从 io.Reader 读取图片,自动识别格式。

参数:

  • 读取器: 实现 io.Reader 接口的读取器

返回:

  • image.Image: 解码后的图片对象
  • string: 识别到的图片格式(如 "png"、"jpeg")
  • error: 解码失败时返回错误

func T图片_伽马校正

func T图片_伽马校正(图片 image.Image, 伽马值 float64) image.Image

T图片_伽马校正 对图片进行伽马校正。

参数:

  • 图片: 原始图片
  • 伽马值: 伽马校正值;1.0 为原始值,<1 变亮,>1 变暗

返回:

  • image.Image: 校正后的图片

func T图片_保存

func T图片_保存(图片 image.Image, 文件路径 string) error

T图片_保存 保存图片到文件,根据文件扩展名自动选择格式。 支持的扩展名:.png、.jpg/.jpeg、.gif、.bmp、.tiff/.tif

参数:

  • 图片: 要保存的图片对象
  • 文件路径: 保存路径(含扩展名)

返回:

  • error: 保存失败时返回错误

func T图片_保存GIF

func T图片_保存GIF(图片 image.Image, 文件路径 string) error

T图片_保存GIF 将图片保存为 GIF 格式。

参数:

  • 图片: 要保存的图片对象
  • 文件路径: 保存路径

返回:

  • error: 保存失败时返回错误

func T图片_保存JPEG

func T图片_保存JPEG(图片 image.Image, 文件路径 string, 质量 int) error

T图片_保存JPEG 将图片保存为 JPEG 格式。

参数:

  • 图片: 要保存的图片对象
  • 文件路径: 保存路径
  • 质量: JPEG 压缩质量(1-100),推荐 75-85

返回:

  • error: 保存失败时返回错误

func T图片_保存PNG

func T图片_保存PNG(图片 image.Image, 文件路径 string) error

T图片_保存PNG 将图片保存为 PNG 格式。

参数:

  • 图片: 要保存的图片对象
  • 文件路径: 保存路径

返回:

  • error: 保存失败时返回错误

func T图片_创建纯色图

func T图片_创建纯色图(宽度 int, 高度 int, 颜色值 color.Color) image.Image

T图片_创建纯色图 创建指定尺寸和颜色的纯色图片。

参数:

  • 宽度: 图片宽度(像素)
  • 高度: 图片高度(像素)
  • 颜色值: 填充颜色

返回:

  • image.Image: 纯色图片

func T图片_创建透明图

func T图片_创建透明图(宽度 int, 高度 int) image.Image

T图片_创建透明图 创建指定尺寸的透明图片。

参数:

  • 宽度: 图片宽度(像素)
  • 高度: 图片高度(像素)

返回:

  • image.Image: 透明图片

func T图片_反色

func T图片_反色(图片 image.Image) image.Image

T图片_反色 将图片颜色取反(底片效果)。

参数:

  • 图片: 原始图片

返回:

  • image.Image: 反色后的图片

func T图片_取像素RGBA

func T图片_取像素RGBA(图片 image.Image, x int, y int) (uint32, uint32, uint32, uint32)

T图片_取像素RGBA 获取指定坐标的 RGBA 颜色分量(0-255)。

参数:

  • 图片: 图片对象
  • x: 像素 X 坐标
  • y: 像素 Y 坐标

返回:

  • uint32: 红色分量(0-255)
  • uint32: 绿色分量(0-255)
  • uint32: 蓝色分量(0-255)
  • uint32: 透明度分量(0-255)

func T图片_取像素颜色

func T图片_取像素颜色(图片 image.Image, x int, y int) color.Color

T图片_取像素颜色 获取指定坐标的像素颜色。

参数:

  • 图片: 图片对象
  • x: 像素 X 坐标(从左到右,从 0 开始)
  • y: 像素 Y 坐标(从上到下,从 0 开始)

返回:

  • color.Color: 像素颜色

func T图片_取宽度

func T图片_取宽度(图片 image.Image) int

T图片_取宽度 获取图片宽度(像素)。

参数:

  • 图片: 图片对象

返回:

  • int: 宽度像素数

func T图片_取尺寸

func T图片_取尺寸(图片 image.Image) (int, int)

T图片_取尺寸 获取图片尺寸(宽度, 高度)。

参数:

  • 图片: 图片对象

返回:

  • int: 宽度像素数
  • int: 高度像素数

func T图片_取边界

func T图片_取边界(图片 image.Image) image.Rectangle

T图片_取边界 获取图片边界矩形。

参数:

  • 图片: 图片对象

返回:

  • image.Rectangle: 图片边界矩形

func T图片_取高度

func T图片_取高度(图片 image.Image) int

T图片_取高度 获取图片高度(像素)。

参数:

  • 图片: 图片对象

返回:

  • int: 高度像素数

func T图片_叠加

func T图片_叠加(底图 image.Image, 上层图 image.Image, x int, y int) image.Image

T图片_叠加 将上层图片叠加到底层图片的指定位置。

参数:

  • 底图: 底层图片
  • 上层图: 上层图片
  • x: 叠加位置 X 坐标
  • y: 叠加位置 Y 坐标

返回:

  • image.Image: 叠加后的图片

func T图片_叠加带透明度

func T图片_叠加带透明度(底图 image.Image, 上层图 image.Image, x int, y int, 透明度 float64) image.Image

T图片_叠加带透明度 将上层图片以指定透明度叠加到底层图片。

参数:

  • 底图: 底层图片
  • 上层图: 上层图片
  • x: 叠加位置 X 坐标
  • y: 叠加位置 Y 坐标
  • 透明度: 叠加透明度(0-1)

返回:

  • image.Image: 叠加后的图片

func T图片_垂直翻转

func T图片_垂直翻转(图片 image.Image) image.Image

T图片_垂直翻转 将图片上下镜像翻转。

参数:

  • 图片: 原始图片

返回:

  • image.Image: 翻转后的图片

func T图片_居中裁剪

func T图片_居中裁剪(图片 image.Image, 宽度 int, 高度 int) image.Image

T图片_居中裁剪 从图片中心裁剪出指定尺寸的区域。

参数:

  • 图片: 原始图片
  • 宽度: 裁剪宽度(像素)
  • 高度: 裁剪高度(像素)

返回:

  • image.Image: 裁剪后的图片

func T图片_拼接垂直

func T图片_拼接垂直(图片列表 []image.Image) image.Image

T图片_拼接垂直 将多张图片垂直拼接成一张。 所有图片按第一张的宽度等比缩放后拼接。

参数:

  • 图片列表: 要拼接的图片切片

返回:

  • image.Image: 拼接后的图片

func T图片_拼接水平

func T图片_拼接水平(图片列表 []image.Image) image.Image

T图片_拼接水平 将多张图片水平拼接成一张。 所有图片按第一张的高度等比缩放后拼接。

参数:

  • 图片列表: 要拼接的图片切片

返回:

  • image.Image: 拼接后的图片

func T图片_旋转

func T图片_旋转(图片 image.Image, 角度 float64) image.Image

T图片_旋转 将图片顺时针旋转指定角度。

参数:

  • 图片: 原始图片
  • 角度: 顺时针旋转角度(如 90、180、270)

返回:

  • image.Image: 旋转后的图片

func T图片_旋转90

func T图片_旋转90(图片 image.Image) image.Image

T图片_旋转90 顺时针旋转 90 度。

参数:

  • 图片: 原始图片

返回:

  • image.Image: 旋转后的图片

func T图片_旋转180

func T图片_旋转180(图片 image.Image) image.Image

T图片_旋转180 旋转 180 度。

参数:

  • 图片: 原始图片

返回:

  • image.Image: 旋转后的图片

func T图片_旋转270

func T图片_旋转270(图片 image.Image) image.Image

T图片_旋转270 顺时针旋转 270 度(即逆时针 90 度)。

参数:

  • 图片: 原始图片

返回:

  • image.Image: 旋转后的图片

func T图片_模糊

func T图片_模糊(图片 image.Image, 半径 float64) image.Image

T图片_模糊 对图片进行高斯模糊处理。

参数:

  • 图片: 原始图片
  • 半径: 模糊半径(像素),值越大越模糊;推荐 1-20

返回:

  • image.Image: 模糊后的图片

func T图片_水平翻转

func T图片_水平翻转(图片 image.Image) image.Image

T图片_水平翻转 将图片左右镜像翻转。

参数:

  • 图片: 原始图片

返回:

  • image.Image: 翻转后的图片

func T图片_添加水印

func T图片_添加水印(底图 image.Image, 水印图 image.Image, 位置 string, 偏移X int, 偏移Y int, 透明度 float64) image.Image

T图片_添加水印 在图片上添加半透明水印。 水印图片将被缩放到指定尺寸后叠加到目标位置。

参数:

  • 底图: 底层图片
  • 水印图: 水印图片
  • 位置: 水印位置("左上"/"右上"/"左下"/"右下"/"居中")
  • 偏移X: 水印相对位置的 X 偏移(像素)
  • 偏移Y: 水印相对位置的 Y 偏移(像素)
  • 透明度: 水印透明度(0-1),0 完全透明,1 完全不透明

返回:

  • image.Image: 添加水印后的图片

func T图片_灰度化

func T图片_灰度化(图片 image.Image) image.Image

T图片_灰度化 将图片转换为灰度图。

参数:

  • 图片: 原始图片

返回:

  • image.Image: 灰度图

func T图片_生成二维码

func T图片_生成二维码(内容 string, 文件路径 string, 尺寸 int) error

T图片_生成二维码 生成二维码图片并保存到文件。

参数:

  • 内容: 二维码编码内容
  • 文件路径: 保存路径(PNG 格式)
  • 尺寸: 二维码图片尺寸(像素),推荐 256

返回:

  • error: 生成失败时返回错误

func T图片_生成二维码base64

func T图片_生成二维码base64(内容 string) string

T图片_生成二维码base64 生成指定内容的二维码图片,并返回 Base64 编码字符串。 二维码大小为 256x256 像素,容错等级为 Medium。 返回的 Base64 字符串可直接用于 HTML img 标签的 src 属性。

参数:

  • 内容: 二维码中编码的内容文本

返回:

  • string: Base64 编码的 PNG 图片字符串;生成失败返回空串

func T图片_生成二维码到写入器

func T图片_生成二维码到写入器(内容 string, 写入器 io.Writer, 尺寸 int) error

T图片_生成二维码到写入器 将二维码图片写入 io.Writer。

参数:

  • 内容: 二维码编码内容
  • 写入器: 实现 io.Writer 接口的对象
  • 尺寸: 二维码图片尺寸(像素)

返回:

  • error: 生成失败时返回错误

func T图片_生成二维码自定义

func T图片_生成二维码自定义(内容 string, 容错等级 int, 尺寸 int) (image.Image, error)

T图片_生成二维码自定义 生成自定义参数的二维码图片对象。

参数:

  • 内容: 二维码编码内容
  • 容错等级: 容错级别(1=Low, 2=Medium, 3=Quartile, 4=High)
  • 尺寸: 二维码图片尺寸(像素)

返回:

  • image.Image: 二维码图片对象
  • error: 生成失败时返回错误

func T图片_缩放

func T图片_缩放(图片 image.Image, 宽度 int, 高度 int) image.Image

T图片_缩放 将图片缩放到指定尺寸。 使用 Lanczos 滤镜进行高质量缩放。

参数:

  • 图片: 原始图片
  • 宽度: 目标宽度(像素),传 0 则按高度等比缩放
  • 高度: 目标高度(像素),传 0 则按宽度等比缩放

返回:

  • image.Image: 缩放后的图片

func T图片_缩放到宽度

func T图片_缩放到宽度(图片 image.Image, 宽度 int) image.Image

T图片_缩放到宽度 将图片等比缩放到指定宽度。

参数:

  • 图片: 原始图片
  • 宽度: 目标宽度(像素)

返回:

  • image.Image: 缩放后的图片

func T图片_缩放到高度

func T图片_缩放到高度(图片 image.Image, 高度 int) image.Image

T图片_缩放到高度 将图片等比缩放到指定高度。

参数:

  • 图片: 原始图片
  • 高度: 目标高度(像素)

返回:

  • image.Image: 缩放后的图片

func T图片_缩略图

func T图片_缩略图(图片 image.Image, 宽度 int, 高度 int) image.Image

T图片_缩略图 生成缩略图,将图片等比缩放并裁剪到指定尺寸。 与 T图片_缩放 不同,此函数会裁剪多余部分以确保输出尺寸精确。

参数:

  • 图片: 原始图片
  • 宽度: 缩略图宽度(像素)
  • 高度: 缩略图高度(像素)

返回:

  • image.Image: 缩略图

func T图片_裁剪

func T图片_裁剪(图片 image.Image, 左 int, 上 int, 右 int, 下 int) image.Image

T图片_裁剪 裁剪图片到指定矩形区域。

参数:

  • 图片: 原始图片
  • 左: 裁剪区域左边界 X 坐标
  • 上: 裁剪区域上边界 Y 坐标
  • 右: 裁剪区域右边界 X 坐标
  • 下: 裁剪区域下边界 Y 坐标

返回:

  • image.Image: 裁剪后的图片

func T图片_设置透明度

func T图片_设置透明度(图片 image.Image, 透明度 float64) image.Image

T图片_设置透明度 设置图片整体透明度。

参数:

  • 图片: 原始图片
  • 透明度: 透明度(0-1),0 完全透明,1 完全不透明

返回:

  • image.Image: 调整后的图片

func T图片_读取

func T图片_读取(文件路径 string) (image.Image, error)

T图片_读取 从文件读取图片,自动识别格式(PNG/JPEG/GIF/BMP/TIFF)。

参数:

  • 文件路径: 图片文件的完整路径

返回:

  • image.Image: 解码后的图片对象
  • error: 读取失败时返回错误

func T图片_读取Base64

func T图片_读取Base64(base64文本 string) (image.Image, error)

T图片_读取Base64 从 Base64 编码字符串读取图片,自动识别格式。 支持带 data:image/xxx;base64, 前缀的字符串。

参数:

  • base64文本: Base64 编码的图片字符串

返回:

  • image.Image: 解码后的图片对象
  • error: 解码失败时返回错误

func T图片_调整亮度

func T图片_调整亮度(图片 image.Image, 亮度 int) image.Image

T图片_调整亮度 调整图片亮度。

参数:

  • 图片: 原始图片
  • 亮度: 亮度调整值,范围 -100 到 100;负值变暗,正值变亮

返回:

  • image.Image: 调整后的图片

func T图片_调整对比度

func T图片_调整对比度(图片 image.Image, 对比度 int) image.Image

T图片_调整对比度 调整图片对比度。

参数:

  • 图片: 原始图片
  • 对比度: 对比度调整值,范围 -100 到 100;负值降低,正值增强

返回:

  • image.Image: 调整后的图片

func T图片_调整色相

func T图片_调整色相(图片 image.Image, 色相 int) image.Image

T图片_调整色相 调整图片色相。 通过 HSL 色彩空间进行色相偏移。

参数:

  • 图片: 原始图片
  • 色相: 色相偏移值,范围 -180 到 180

返回:

  • image.Image: 调整后的图片

func T图片_调整饱和度

func T图片_调整饱和度(图片 image.Image, 饱和度 int) image.Image

T图片_调整饱和度 调整图片饱和度。

参数:

  • 图片: 原始图片
  • 饱和度: 饱和度调整值,范围 -100 到 100;负值降低,正值增强

返回:

  • image.Image: 调整后的图片

func T图片_转Base64

func T图片_转Base64(图片 image.Image, 格式 string) (string, error)

T图片_转Base64 将图片转换为 Base64 编码字符串。

参数:

  • 图片: 图片对象
  • 格式: 图片格式,如 "png"、"jpeg"、"gif"

返回:

  • string: Base64 编码字符串
  • error: 编码失败时返回错误

func T图片_转DataURI

func T图片_转DataURI(图片 image.Image, 格式 string) (string, error)

T图片_转DataURI 将图片转换为 Data URI 格式字符串。 可直接用于 HTML img 标签的 src 属性。

参数:

  • 图片: 图片对象
  • 格式: 图片格式,如 "png"、"jpeg"、"gif"

返回:

  • string: Data URI 字符串,如 "data:image/png;base64,xxx"
  • error: 编码失败时返回错误

func T图片_转字节

func T图片_转字节(图片 image.Image, 格式 string) ([]byte, error)

T图片_转字节 将图片编码为字节切片。

参数:

  • 图片: 图片对象
  • 格式: 图片格式,如 "png"、"jpeg"、"gif"

返回:

  • []byte: 编码后的字节数据
  • error: 编码失败时返回错误

func T图片_锐化

func T图片_锐化(图片 image.Image, 强度 float64) image.Image

T图片_锐化 对图片进行锐化处理。

参数:

  • 图片: 原始图片
  • 强度: 锐化强度,范围 0-1;值越大锐化越明显

返回:

  • image.Image: 锐化后的图片

func T模板_写入

func T模板_写入(模板文本 string, 写入器 io.Writer, 标签 map[string]interface{}) (int64, error)

T模板_写入 将模板替换结果写入指定的 io.Writer。 适用于输出到文件、网络连接等场景,避免生成中间字符串。

参数:

  • 模板文本: 包含占位符的模板字符串
  • 写入器: 实现了 io.Writer 接口的对象
  • 标签: 占位符名到替换值的映射

返回:

  • int64: 写入的字节数
  • error: 模板语法错误或写入失败时返回

func T模板_创建

func T模板_创建(模板文本 string, 起始标记 string, 结束标记 string) (*fasttemplate.Template, error)

T模板_创建 创建可重复使用的模板对象。 适用于需要多次执行同一模板的场景,避免重复解析模板。

参数:

  • 模板文本: 包含占位符的模板字符串
  • 起始标记: 占位符的起始标记
  • 结束标记: 占位符的结束标记

返回:

  • *fasttemplate.Template: 模板对象,可重复调用 ExecuteString
  • error: 模板语法错误时返回

func T模板_执行

func T模板_执行(模板文本 string, 标签 map[string]interface{}) (string, error)

T模板_执行 使用 fasttemplate 执行模板替换。 模板中使用 {占位符} 格式的占位符,通过标签映射替换为实际值。 相比 strings.Replace 和 fmt.Sprintf,fasttemplate 在高频调用时性能更优。

参数:

  • 模板文本: 包含占位符的模板字符串,占位符格式为 {key}
  • 标签: 占位符名到替换值的映射,如 {"name": "张三", "age": "25"}

返回:

  • string: 替换后的结果字符串
  • error: 模板语法错误时返回

func T模板_执行自定义分隔符

func T模板_执行自定义分隔符(模板文本 string, 起始标记 string, 结束标记 string, 标签 map[string]interface{}) (string, error)

T模板_执行自定义分隔符 使用自定义分隔符执行模板替换。 可自定义占位符的起始和结束标记,如 {{ 和 }} 或 <% 和 %>。

参数:

  • 模板文本: 包含占位符的模板字符串
  • 起始标记: 占位符的起始标记,如 "{{"
  • 结束标记: 占位符的结束标记,如 "}}"
  • 标签: 占位符名到替换值的映射

返回:

  • string: 替换后的结果字符串
  • error: 模板语法错误时返回

func T模板_替换

func T模板_替换(模板文本 string, 标签 map[string]interface{}) string

T模板_替换 简单的模板替换,使用默认 {key} 格式。 是 T模板_执行 的简化版本,忽略错误直接返回结果。

参数:

  • 模板文本: 包含占位符的模板字符串
  • 标签: 占位符名到替换值的映射

返回:

  • string: 替换后的结果字符串;出错时返回原模板文本

func Utf8到文本

func Utf8到文本(src string) string

Utf8到文本 将 UTF-8 编码的字符串转换为 GBK 编码。 使用 golang.org/x/text 库进行编码转换,转换失败时返回原字符串。

参数:

  • src: UTF-8 编码的源字符串

返回:

  • string: GBK 编码的字符串;失败时返回原字符串

func V校验_取结构体标签

func V校验_取结构体标签(结构体 interface{}, 字段名 string) string

V校验_取结构体标签 获取结构体字段的 validate 标签值。 用于调试和日志,查看字段绑定的校验规则。

参数:

  • 结构体: 结构体实例
  • 字段名: 字段名称

返回:

  • string: validate 标签的值;字段不存在或无标签时返回空串

func V校验_取错误信息

func V校验_取错误信息(错误 error) string

V校验_取错误信息 从验证错误中提取可读的错误信息。 将 validator.ValidationErrors 转换为中文友好的错误描述。

参数:

  • 错误: V校验_验证结构体 返回的错误

返回:

  • string: 格式化的错误信息,如 "字段 Email 验证 required 失败"

func V校验_是IP

func V校验_是IP(ip string) bool

V校验_是IP 验证字符串是否为有效的 IP 地址(支持 IPv4 和 IPv6)。

参数:

  • ip: 待验证的 IP 地址字符串

返回:

  • bool: true 表示是有效的 IP 地址

func V校验_是JSON

func V校验_是JSON(json文本 string) bool

V校验_是JSON 验证字符串是否为有效的 JSON 格式。

参数:

  • json文本: 待验证的 JSON 字符串

返回:

  • bool: true 表示是有效的 JSON 格式

func V校验_是URL

func V校验_是URL(网址 string) bool

V校验_是URL 验证字符串是否为有效的 URL 格式。

参数:

  • 网址: 待验证的 URL 字符串

返回:

  • bool: true 表示是有效的 URL 格式

func V校验_是邮箱

func V校验_是邮箱(邮箱 string) bool

V校验_是邮箱 验证字符串是否为有效的邮箱地址格式。

参数:

  • 邮箱: 待验证的邮箱字符串

返回:

  • bool: true 表示是有效的邮箱格式

func V校验_注册自定义验证

func V校验_注册自定义验证(规则名 string, 验证函数 func(fl validator.FieldLevel) bool) error

V校验_注册自定义验证 注册自定义的验证函数。 注册后可在标签中使用自定义的验证规则名。

参数:

  • 规则名: 自定义验证规则的名称,如 "phone"
  • 验证函数: 验证函数,接收字段值返回是否通过

返回:

  • error: 注册失败时返回错误

func V校验_验证变量

func V校验_验证变量(变量 interface{}, 标签 string) error

V校验_验证变量 验证单个变量的值是否符合标签约束。 适用于不需要定义结构体的简单校验场景。

参数:

  • 变量: 待验证的变量值
  • 标签: 校验规则标签,如 "required,email"、"min=1,max=100"

返回:

  • error: 验证失败时返回错误信息;通过时返回 nil

func V校验_验证字段

func V校验_验证字段(结构体 interface{}, 字段名 string, 标签 string) error

V校验_验证字段 验证结构体中指定字段的值。 仅验证单个字段,不验证整个结构体。

参数:

  • 结构体: 包含待验证字段的结构体
  • 字段名: 要验证的字段名(结构体中的字段名,非 JSON 名)
  • 标签: 校验规则标签

返回:

  • error: 验证失败时返回错误信息

func V校验_验证结构体

func V校验_验证结构体(结构体 interface{}) error

V校验_验证结构体 验证结构体字段的标签约束。 结构体字段需使用 validate 标签定义校验规则,如 `validate:"required,email"`。 常用标签: required(必填), email(邮箱), min/max(最小/最大值), len(长度), oneof(枚举值)。

参数:

  • 结构体: 待验证的结构体实例(非指针)

返回:

  • error: 验证失败时返回详细的字段错误信息;通过时返回 nil

func W文件_保存

func W文件_保存(文件名 string, 欲写入文件的数据 interface{}) error

W文件_保存 智能保存文件,仅在内容不同时才写入。 先检查文件是否存在,如果存在则比较内容是否一致,不一致才写出。 避免不必要的磁盘写入操作。

参数:

  • 文件名: 目标文件路径
  • 欲写入文件的数据: 待写入的数据

返回:

  • error: 写入失败时返回错误信息;内容相同时返回 nil

func W文件_写出

func W文件_写出(文件名 string, 欲写入文件的数据 interface{}) error

W文件_写出 将数据写入文件,父目录不存在时自动创建。 数据通过 D到字节集 转换为字节集后写入,文件权限为可执行权限。

参数:

  • 文件名: 目标文件路径
  • 欲写入文件的数据: 待写入的数据(支持字符串、字节集等类型)

返回:

  • error: 写入失败时返回错误信息

func W文件_写出文件

func W文件_写出文件(文件名 string, 欲写入文件的数据 interface{}) error

W文件_写出文件 W文件_写出 的别名,为使用习惯添加。 功能与 W文件_写出 完全相同。

参数:

  • 文件名: 目标文件路径
  • 欲写入文件的数据: 待写入的数据

返回:

  • error: 写入失败时返回错误信息

func W文件_写到文件

func W文件_写到文件(文件名 string, 欲写入文件的数据 []byte) error

W文件_写到文件 将字节数据写入文件。 如果父目录不存在,会自动创建。文件权限为 0644。

参数:

  • 文件名: 目标文件路径
  • 欲写入文件的数据: 待写入的字节数据

返回:

  • error: 写入失败时返回错误信息

func W文件_删除

func W文件_删除(欲删除的文件名 string) error

W文件_删除 删除指定文件。

参数:

  • 欲删除的文件名: 要删除的文件路径

返回:

  • error: 删除失败时返回错误信息

func W文件_取临时文件名

func W文件_取临时文件名(目录名 string) (f *os.File, filepath string, err error)

W文件_取临时文件名 在指定目录中创建一个临时文件,返回文件对象和路径。 如果目录名为空,使用系统默认临时目录。

参数:

  • 目录名: 临时文件所在目录,可为空

返回:

  • f: 临时文件对象
  • filepath: 临时文件的完整路径
  • err: 创建失败时的错误信息

func W文件_取大小

func W文件_取大小(文件名 string) int64

W文件_取大小 获取文件的大小(字节数)。

参数:

  • 文件名: 文件路径

返回:

  • int64: 文件大小(字节);文件不存在返回 -1

func W文件_取文件名

func W文件_取文件名(路径 string) string

W文件_取文件名 从完整路径中提取文件名部分。

参数:

  • 路径: 文件完整路径

返回:

  • string: 文件名(含扩展名)

func W文件_取父目录

func W文件_取父目录(dirpath string) string

W文件_取父目录 获取文件路径的父目录。

参数:

  • dirpath: 文件路径

返回:

  • string: 父目录路径

func W文件_是否存在

func W文件_是否存在(路径 string) bool

W文件_是否存在 判断文件或目录是否存在。

参数:

  • 路径: 文件或目录的路径

返回:

  • bool: true 表示存在

func W文件_更名

func W文件_更名(欲更名的原文件或目录名 string, 欲更改为的现文件或目录名 string) error

W文件_更名 重命名文件或目录。

参数:

  • 欲更名的原文件或目录名: 原名称路径
  • 欲更改为的现文件或目录名: 新名称路径

返回:

  • error: 重命名失败时返回错误信息

func W文件_枚举

func W文件_枚举(欲寻找的目录 string, 欲寻找的文件名 string, files *[]string, 是否带路径 bool, 是否遍历子目录 bool) error

W文件_枚举 枚举指定目录下的文件,支持按扩展名过滤和递归遍历。 结果通过指针参数返回,会追加到现有数组中。

参数:

  • 欲寻找的目录: 要枚举的根目录路径
  • 欲寻找的文件名: 文件扩展名过滤,多个用 | 分隔(如 ".txt|.jpg"),空表示所有文件
  • files: 用于接收结果的字符串数组指针
  • 是否带路径: true 返回完整路径,false 仅返回文件名
  • 是否遍历子目录: true 递归遍历子目录

返回:

  • error: 枚举过程中遇到的错误

func W文件_读入文件

func W文件_读入文件(文件名 string) []byte

W文件_读入文件 从文件中读取全部内容并返回字节集。 读取失败时返回空字节集。

参数:

  • 文件名: 源文件路径

返回:

  • []byte: 文件内容字节集

func W文件_读入文本

func W文件_读入文本(文件名 string) string

W文件_读入文本 从文件中读取全部内容并返回字符串。 读取失败时返回空串。

参数:

  • 文件名: 源文件路径

返回:

  • string: 文件内容文本

func W文件_路径合并处理

func W文件_路径合并处理(elem ...string) string

W文件_路径合并处理 将多个路径元素合并为一个路径。 使用 path.Join 处理路径分隔符。

参数:

  • elem: 路径元素列表

返回:

  • string: 合并后的路径

func W文件_追加文本

func W文件_追加文本(文件名 string, 欲追加的文本 string) error

W文件_追加文本 向文件末尾追加文本内容,自动添加换行符。 文件不存在时自动创建,父目录不存在时自动创建。

参数:

  • 文件名: 目标文件路径
  • 欲追加的文本: 要追加的文本内容

返回:

  • error: 追加失败时返回错误信息

func W文本_gbk到utf8

func W文本_gbk到utf8(src string) string

W文本_gbk到utf8 将 GBK 编码的字符串转换为 UTF-8 编码。 使用 mahonia 库进行编码转换。

参数:

  • src: GBK 编码的源字符串

返回:

  • string: UTF-8 编码的字符串

func W文本_utf8到gbk

func W文本_utf8到gbk(src string) string

W文本_utf8到gbk 将 UTF-8 编码的字符串转换为 GBK 编码。 使用 mahonia 库进行编码转换。

参数:

  • src: UTF-8 编码的源字符串

返回:

  • string: GBK 编码的字符串

func W文本_倒取出中间文本

func W文本_倒取出中间文本(欲取全文本 string, 右边文本 string, 左边文本 string, 倒数搜寻位置 int, 是否不区分大小写 bool) string

W文本_倒取出中间文本 从文本末尾开始搜索,提取左右标记之间的中间文本。 与 W文本_取出中间文本 不同,此函数从右向左搜索标记位置。 例如:"0012345" 中,右边文本为 "4",左边文本为 "0",则返回 "123"。

参数:

  • 欲取全文本: 完整的源文本
  • 右边文本: 中间文本右侧的标记文本
  • 左边文本: 中间文本左侧的标记文本
  • 倒数搜寻位置: 搜索右边文本的起始位置(从右往左),0 或负数表示从末尾开始
  • 是否不区分大小写: true 时不区分大小写搜索

返回:

  • string: 提取的中间文本;未找到标记时返回空串

func W文本_倒找文本

func W文本_倒找文本(被搜寻的文本 string, 欲寻找的文本 string) int

W文本_倒找文本 从后往前查找指定文本的位置。 返回最后一次出现的位置。

参数:

  • 被搜寻的文本: 被搜索的文本
  • 欲寻找的文本: 要查找的文本

返回:

  • int: 找到的位置(字节偏移,从 0 开始);未找到返回 -1

func W文本_分割文本

func W文本_分割文本(待分割文本 string, 用作分割的文本 string) []string

W文本_分割文本 按指定分隔符将文本分割为字符串数组。 等同于 strings.Split。

参数:

  • 待分割文本: 待分割的文本
  • 用作分割的文本: 分隔符

返回:

  • []string: 分割后的字符串数组

func W文本_删尾空

func W文本_删尾空(欲删除空格的文本 string) string

W文本_删尾空 去除文本右侧的空格字符。 仅去除半角空格,不去除制表符和换行符。

参数:

  • 欲删除空格的文本: 源文本

返回:

  • string: 去除右侧空格后的文本

func W文本_删除指定文本行

func W文本_删除指定文本行(源文本 string, 行数 int) string

W文本_删除指定文本行 删除源文本中指定行号的整行文本。 行号从 0 开始计数。

参数:

  • 源文本: 多行文本
  • 行数: 要删除的行号(从 0 开始)

返回:

  • string: 删除指定行后的文本

func W文本_删除空行

func W文本_删除空行(要操作的文本 string) string

W文本_删除空行 删除文本中的空行。 移除文本首尾的换行符,以及每行开头的 \r 和末尾的 \n。

参数:

  • 要操作的文本: 源文本

返回:

  • string: 删除空行后的文本

func W文本_删首尾空

func W文本_删首尾空(内容 string) string

W文本_删首尾空 去除文本首尾的空白字符(空格、制表符、换行等)。 等同于 strings.TrimSpace。

参数:

  • 内容: 源文本

返回:

  • string: 去除首尾空白后的文本

func W文本_删首空

func W文本_删首空(欲删除空格的文本 string) string

W文本_删首空 去除文本左侧的空格字符。 仅去除半角空格,不去除制表符和换行符。

参数:

  • 欲删除空格的文本: 源文本

返回:

  • string: 去除左侧空格后的文本

func W文本_到大写

func W文本_到大写(value string) string

W文本_到大写 将文本转换为大写。

参数:

  • value: 源文本

返回:

  • string: 大写文本

func W文本_到小写

func W文本_到小写(value string) string

W文本_到小写 将文本转换为小写。

参数:

  • value: 源文本

返回:

  • string: 小写文本

func W文本_去重复文本

func W文本_去重复文本(原文本 string, 分割符 string) string

W文本_去重复文本 去除文本中重复的元素。 按指定分隔符分割后去重,保持元素首次出现的顺序。

参数:

  • 原文本: 源文本
  • 分割符: 元素之间的分隔符,为空时按字符去重

返回:

  • string: 去重后用分隔符连接的文本

func W文本_去除敏感信息

func W文本_去除敏感信息(内容 string) string

W文本_去除敏感信息 对文本进行脱敏处理,将中间一半的字符替换为 *。 长度小于等于 2 时,仅保留第一个字符;长度大于 2 时,中间一半替换为 *。 使用 rune 处理,中文安全。

参数:

  • 内容: 待脱敏的文本

返回:

  • string: 脱敏后的文本,如 "张**"、"138****1234"

func W文本_取出中间文本

func W文本_取出中间文本(内容 string, 左边文本 string, 右边文本 string) string

W文本_取出中间文本 从文本中提取左右标记之间的中间文本(首次匹配)。 从左向右搜索,返回第一个匹配结果。

参数:

  • 内容: 源文本
  • 左边文本: 中间文本左侧的标记
  • 右边文本: 中间文本右侧的标记,为空时取到文本末尾

返回:

  • string: 提取的中间文本;未找到标记时返回空串

func W文本_取出中间文本_批量正则

func W文本_取出中间文本_批量正则(内容 string, 左边文本 string, 右边文本 string) []string

W文本_取出中间文本_批量正则 使用正则表达式批量提取左右标记之间的所有中间文本。 左右标记会自动进行正则转义,中间部分使用非贪婪匹配。

参数:

  • 内容: 源文本
  • 左边文本: 中间文本左侧的标记
  • 右边文本: 中间文本右侧的标记

返回:

  • []string: 所有匹配的中间文本数组

func W文本_取出现次数

func W文本_取出现次数(被搜索文本 string, 欲搜索文本 string) int

W文本_取出现次数 统计指定文本在源文本中出现的次数。

参数:

  • 被搜索文本: 源文本
  • 欲搜索文本: 要统计的文本

返回:

  • int: 出现次数

func W文本_取右边

func W文本_取右边(欲取其部分的文本 string, 欲取出字符的数目 int) string

W文本_取右边 从文本右侧截取指定字符数的子串。 使用 rune 截取,中文安全,每个中文算一个字符。

参数:

  • 欲取其部分的文本: 源文本
  • 欲取出字符的数目: 截取的字符数

返回:

  • string: 右侧指定字符数的文本;请求数超过长度时返回原文本

func W文本_取左边

func W文本_取左边(欲取其部分的文本 string, 欲取出字符的数目 int) string

W文本_取左边 从文本左侧截取指定字符数的子串。 使用 rune 截取,中文安全,每个中文算一个字符。

参数:

  • 欲取其部分的文本: 源文本
  • 欲取出字符的数目: 截取的字符数

返回:

  • string: 左侧指定字符数的文本;请求数超过长度时返回原文本

func W文本_取指定变量文本行

func W文本_取指定变量文本行(文本 string, 行号 int) string

W文本_取指定变量文本行 获取多行文本中指定行号的内容。 行号从 1 开始计数。

参数:

  • 文本: 多行文本
  • 行号: 要获取的行号(从 1 开始)

返回:

  • string: 指定行的文本;行号越界时返回空串

func W文本_取文本右边

func W文本_取文本右边(内容 string, 关键字 string) string

W文本_取文本右边 获取关键字右侧的文本(不含关键字)。 按字节截取,注意中文占多个字节。

参数:

  • 内容: 源文本
  • 关键字: 分隔关键字

返回:

  • string: 关键字右侧的文本;未找到返回空串

func W文本_取文本右边2

func W文本_取文本右边2(被查找的文本 string, 欲寻找的文本 string, 起始寻找位置 int, 是否不区分大小写 bool) string

W文本_取文本右边2 从文本右侧截取指定关键字之后的内容。 支持从指定位置开始搜索,可选择是否区分大小写。

参数:

  • 被查找的文本: 源文本
  • 欲寻找的文本: 分隔关键字
  • 起始寻找位置: 搜索起始位置,0 表示从末尾开始
  • 是否不区分大小写: true 时不区分大小写

返回:

  • string: 关键字右侧的文本;未找到返回空串

func W文本_取文本右边_带关键字

func W文本_取文本右边_带关键字(内容 string, 关键字 string) string

W文本_取文本右边_带关键字 获取关键字右侧的文本(不含关键字)。 功能与 W文本_取文本右边 相同,为使用习惯提供别名。

参数:

  • 内容: 源文本
  • 关键字: 分隔关键字

返回:

  • string: 关键字右侧的文本;未找到返回空串

func W文本_取文本左边

func W文本_取文本左边(内容 string, 关键字 string) string

W文本_取文本左边 获取关键字左侧的文本(不含关键字)。 按字节截取,注意中文占多个字节。

参数:

  • 内容: 源文本
  • 关键字: 分隔关键字

返回:

  • string: 关键字左侧的文本;未找到返回空串

func W文本_取文本左边2

func W文本_取文本左边2(内容 string, 关键字 string) string

W文本_取文本左边2 获取关键字左侧的文本(含关键字本身)。

参数:

  • 内容: 源文本
  • 关键字: 分隔关键字

返回:

  • string: 关键字及其左侧的文本;未找到返回空串

func W文本_取文本所在行

func W文本_取文本所在行(源文本 string, 欲查找的文本 string, 是否区分大小写 bool) int

W文本_取文本所在行 查找指定文本在源文本中的行号。 按换行符 \n 分割源文本,返回第一次匹配的行号。

参数:

  • 源文本: 被搜索的多行文本
  • 欲查找的文本: 要查找的文本
  • 是否区分大小写: 当前未使用,始终区分大小写

返回:

  • int: 行号(从 0 开始);未找到返回 0

func W文本_取空白

func W文本_取空白(重复次数 int) string

W文本_取空白 生成指定数量的半角空格字符串。

参数:

  • 重复次数: 空格的数量

返回:

  • string: 由指定数量空格组成的字符串

func W文本_取行数

func W文本_取行数(文本 string) int

W文本_取行数 统计文本的行数。 按换行符统计,空文本返回 0。

参数:

  • 文本: 待统计的文本

返回:

  • int: 行数

func W文本_取重复

func W文本_取重复(重复次数 int, 待重复文本 string) string

W文本_取重复 生成指定次数重复的文本。

参数:

  • 重复次数: 重复的次数
  • 待重复文本: 要重复的文本

返回:

  • string: 重复后的文本;待重复文本为空时返回空串

func W文本_取长度

func W文本_取长度(value string) int

W文本_取长度 获取文本的字符数(非字节数)。 中文占多个字节但算一个字符长度,使用 utf8.RuneCountInString 实现。

参数:

  • value: 源文本

返回:

  • int: 字符数

func W文本_取随机IP

func W文本_取随机IP() string

W文本_取随机IP 生成一个随机的公网 IP 地址。 从预定义的 IP 段中随机选取,确保生成的 IP 属于公网地址范围。

返回:

  • string: 随机 IP 地址,如 "203.0.113.42";生成失败返回 "0.0.0.0"

func W文本_取随机ip

func W文本_取随机ip() string

W文本_取随机ip 生成一个随机的 IP 地址。 每段为 0-254 之间的随机数,可能生成保留地址。

返回:

  • string: 随机 IP 地址,如 "192.168.1.1"

func W文本_取随机字符串

func W文本_取随机字符串(字符串长度 int) string

W文本_取随机字符串 生成指定长度的随机字符串。 字符集包含大小写字母和数字,首位不会为 '0'。

参数:

  • 字符串长度: 生成的字符串长度

返回:

  • string: 随机字符串

func W文本_取随机字符串_数字

func W文本_取随机字符串_数字(字符串长度 int) string

W文本_取随机字符串_数字 生成指定长度的随机数字字符串。 字符集仅包含数字 1-9 和 0,首位不会为 '0'。

参数:

  • 字符串长度: 生成的字符串长度

返回:

  • string: 随机数字字符串

func W文本_取随机数字数组

func W文本_取随机数字数组(最小值, 最大值 int, 数量 int) []string

W文本_取随机数字数组 生成指定数量的不重复随机数字字符串数组。 数字范围在 [最小值, 最大值) 之间。

参数:

  • 最小值: 随机数的最小值(包含)
  • 最大值: 随机数的上限(不包含)
  • 数量: 要生成的数字数量

返回:

  • []string: 不重复的随机数字字符串数组

func W文本_取随机范围数字

func W文本_取随机范围数字(起始数, 结束数, 单双选择 int) string

W文本_取随机范围数字 生成指定范围内的随机数字字符串。 可选择只生成奇数或偶数。

参数:

  • 起始数: 最小值(包含)
  • 结束数: 最大值(包含)
  • 单双选择: 0=不限, 1=只取奇数, 2=只取偶数

返回:

  • string: 随机数字字符串

func W文本_子文本替换

func W文本_子文本替换(欲被替换的文本 string, 欲被替换的子文本 string, 用作替换的子文本 string) string

W文本_子文本替换 将源文本中所有匹配的子文本替换为新子文本。 全部替换,等同于 strings.Replace 的 -1 模式。

参数:

  • 欲被替换的文本: 原始文本
  • 欲被替换的子文本: 要被替换的子串
  • 用作替换的子文本: 替换后的子串

返回:

  • string: 替换后的文本

func W文本_字符

func W文本_字符(字节型 int8) string

W文本_字符 将字节值转换为对应的单字符字符串。 等同于 string(byte(字节型))。

参数:

  • 字节型: ASCII 字符代码(-128 到 127)

返回:

  • string: 对应的单字符字符串

func W文本_寻找

func W文本_寻找(源文本, 要寻找的文本 string) int

W文本_寻找 在源文本中查找指定文本的位置。

参数:

  • 源文本: 被搜索的文本
  • 要寻找的文本: 要查找的文本

返回:

  • int: 找到的位置(字节偏移,从 0 开始);未找到返回 -1

func W文本_寻找文本

func W文本_寻找文本(被搜寻的文本 string, 欲寻找的文本 string) int

W文本_寻找文本 在源文本中查找指定文本的位置。 从左向右搜索,返回第一次出现的位置。

参数:

  • 被搜寻的文本: 被搜索的文本
  • 欲寻找的文本: 要查找的文本

返回:

  • int: 找到的位置(字节偏移,从 0 开始);未找到返回 -1

func W文本_是否JSON

func W文本_是否JSON(s string) bool

W文本_是否JSON 检查字符串是否为有效的 JSON 对象格式。 仅检查是否为 {"key": "value"} 格式的 JSON 对象,不检查 JSON 数组。

参数:

  • s: 待检查的字符串

返回:

  • bool: 是有效的 JSON 对象返回 true,否则返回 false

func W文本_是否为字母

func W文本_是否为字母(s string) bool

W文本_是否为字母 检查字符串是否仅包含字母字符(含中文等 Unicode 字母)。

参数:

  • s: 待检查的字符串

返回:

  • bool: 仅包含字母返回 true,否则返回 false

func W文本_是否为数字

func W文本_是否为数字(s string) bool

W文本_是否为数字 检查字符串是否仅包含数字字符(含 Unicode 数字)。

参数:

  • s: 待检查的字符串

返回:

  • bool: 仅包含数字返回 true,否则返回 false

func W文本_是否为英数字母

func W文本_是否为英数字母(s string) bool

W文本_是否为英数字母 检查字符串是否仅包含英文字母和数字。

参数:

  • s: 待检查的字符串

返回:

  • bool: 仅包含英文字母和数字返回 true,否则返回 false

func W文本_是否包含关键字

func W文本_是否包含关键字(内容, 关键字 string) bool

W文本_是否包含关键字 检查内容中是否包含指定关键字。 关键字为空时直接返回 true。

参数:

  • 内容: 被搜索的文本
  • 关键字: 要查找的关键字

返回:

  • bool: 包含返回 true,否则返回 false

func W文本_是否存在

func W文本_是否存在(内容, 关键字 string) bool

W文本_是否存在 检查内容中是否包含指定关键字。 功能与 W文本_是否包含关键字 相同,为使用习惯提供别名。

参数:

  • 内容: 被搜索的文本
  • 关键字: 要查找的关键字

返回:

  • bool: 包含返回 true,否则返回 false

func W文本_是否存在_任意

func W文本_是否存在_任意(内容 string, 关键字 []string) bool

W文本_是否存在_任意 检查内容中是否包含关键字数组中的任意一个。 只要有一个关键字匹配即返回 true。

参数:

  • 内容: 被搜索的文本
  • 关键字: 要查找的关键字数组

返回:

  • bool: 任意一个关键字存在返回 true,全部不存在返回 false

func W文本_是否存在_同时

func W文本_是否存在_同时(内容 string, 关键字 []string) bool

W文本_是否存在_同时 检查内容中是否同时包含关键字数组中的所有关键字。 所有关键字都必须存在才返回 true。

参数:

  • 内容: 被搜索的文本
  • 关键字: 要查找的关键字数组

返回:

  • bool: 所有关键字都存在返回 true,任一不存在返回 false

func W文本_替换

func W文本_替换(源文本, 旧文本, 新文本 string) string

W文本_替换 将源文本中所有匹配的旧文本替换为新文本。 全部替换,等同于 strings.Replace 的 -1 模式。

参数:

  • 源文本: 原始文本
  • 旧文本: 要被替换的子串
  • 新文本: 替换后的子串

返回:

  • string: 替换后的文本

func W文本_替换2

func W文本_替换2(源文本 string, 替换内容 map[string]string) string

W文本_替换2 使用 map 批量替换文本中的多个子串。 map 的键为旧文本,值为新文本。 注意:当前实现每次替换都从原始源文本开始,可能导致后续替换覆盖前面的结果。

参数:

  • 源文本: 原始文本
  • 替换内容: 替换映射,key=旧文本,value=新文本

返回:

  • string: 替换后的文本

func W文本_逐字分割

func W文本_逐字分割(原文本 string) []string

W文本_逐字分割 将文本逐字符拆分为字符串数组。 每个字符(含中文)作为数组的一个元素。

参数:

  • 原文本: 待拆分的文本

返回:

  • []string: 字符数组

func W文本_颠倒

func W文本_颠倒(欲转换文本 string, 带有中文 bool) string

W文本_颠倒 将文本内容反转。 带有中文时按双字节反转(适用于 GBK 编码),否则按 Unicode 字符反转。

参数:

  • 欲转换文本: 待反转的文本
  • 带有中文: true 时按双字节反转,false 时按 Unicode 字符反转

返回:

  • string: 反转后的文本

func W文本_首字母改大写

func W文本_首字母改大写(英文文本 string) string

W文本_首字母改大写 将文本的首字母转换为大写。

参数:

  • 英文文本: 待转换的文本

返回:

  • string: 首字母大写后的文本

func W文本到utf8

func W文本到utf8(src string) string

W文本到utf8 将 GBK 编码的字符串转换为 UTF-8 编码。 使用 golang.org/x/text 库进行编码转换,转换失败时返回原字符串。

参数:

  • src: GBK 编码的源字符串

返回:

  • string: UTF-8 编码的字符串;失败时返回原字符串

func W网页_Cookie合并更新

func W网页_Cookie合并更新(旧Cookie, 新Cookie string) string

W网页_Cookie合并更新 将新 Cookie 合并到旧 Cookie 中。 合并规则:旧 Cookie 中与新 Cookie 同名的项会被新值覆盖, 旧 Cookie 中独有的项保留,值为 "=deleted" 的项会被移除, 最后去除重复的分号。

参数:

  • 旧Cookie: 原有的 Cookie 字符串
  • 新Cookie: 新获取的 Cookie 字符串

返回:

  • string: 合并后的 Cookie 字符串

func W网页_取域名

func W网页_取域名(Url string) string

W网页_取域名 从 URL 中提取域名部分。 支持 http:// 和 https:// 两种协议前缀的 URL。

参数:

返回:

  • string: 域名部分,如 "www.example.com";无法识别时返回空串

func W网页_处理协议头

func W网页_处理协议头(原始协议头 string) string

W网页_处理协议头 规范化 HTTP 协议头字符串的格式。 将协议头键名中每个以连字符分隔的单词首字母大写(Title Case), 如 "content-type" → "Content-Type","accept-encoding" → "Accept-Encoding"。

参数:

  • 原始协议头: 原始协议头字符串,每行一个,格式为 "键名:值值"

返回:

  • string: 格式化后的协议头字符串

func W网页_访问_对象

func W网页_访问_对象(网址 string, 访问方式 int, 提交信息 string, 提交Cookies string, 返回Cookies *string, 附加协议头 string, 返回协议头 *string, 返回状态代码 *int, 禁止重定向 bool, 字节集提交 []byte, 代理地址 string, 超时 int, 代理用户名 string, 代理密码 string, 代理标识 int, 对象继承 interface{}, 是否自动合并更新Cookie bool, 是否补全必要协议头 bool, 是否处理协议头大小写 bool) []byte

W网页_访问_对象 发送 HTTP 请求并返回响应数据。 这是网页访问的核心函数,支持多种 HTTP 方法、代理、Cookie 管理等高级功能。

参数:

  • 网址: 请求的完整 URL
  • 访问方式: HTTP 方法,0=GET, 1=POST, 2=HEAD, 3=PUT, 4=OPTIONS, 5=DELETE, 6=TRACE, 7=CONNECT
  • 提交信息: POST 表单数据(当前未使用,请使用 字节集提交 参数)
  • 提交Cookies: 请求时携带的 Cookie 字符串
  • 返回Cookies: 用于接收响应 Set-Cookie 头的指针
  • 附加协议头: 自定义请求头,每行一个,格式为 "键名:值值"
  • 返回协议头: 用于接收响应 Content-Type 头的指针
  • 返回状态代码: 用于接收 HTTP 状态码的指针
  • 禁止重定向: true 时不自动跟随重定向
  • 字节集提交: POST/PUT 请求的原始字节流数据
  • 代理地址: 代理服务器地址,如 "http://127.0.0.1:8080"
  • 超时: 超时时间(秒),-1 表示不限,0 或小于 1 自动设为 15 秒
  • 代理用户名: 代理认证用户名(当前未使用)
  • 代理密码: 代理认证密码(当前未使用)
  • 代理标识: 代理类型标识(当前未使用)
  • 对象继承: 继承对象(当前未使用)
  • 是否自动合并更新Cookie: 是否合并更新 Cookie(当前未使用)
  • 是否补全必要协议头: 是否自动补全 User-Agent 等必要头(当前未使用)
  • 是否处理协议头大小写: 是否规范化协议头大小写(当前未使用)

返回:

  • []byte: 响应体字节集;请求失败时返回空字节集

func X消息_关闭主题

func X消息_关闭主题(总线 messagebus.MessageBus, 主题 string)

X消息_关闭主题 关闭指定主题,释放相关资源。 关闭后该主题的所有订阅者将被移除。

参数:

  • 总线: 消息总线实例
  • 主题: 要关闭的主题名称

func X消息_创建

func X消息_创建(最大订阅者数 int) messagebus.MessageBus

X消息_创建 创建一个新的消息总线。 消息总线支持发布-订阅模式,用于 goroutine 间的异步通信。 订阅者通过主题(topic)接收消息,发布者向主题发送消息。

参数:

  • 最大订阅者数: 每个主题允许的最大订阅者数量,0 表示不限制

返回:

  • messagebus.MessageBus: 消息总线实例

func X消息_发布

func X消息_发布(总线 messagebus.MessageBus, 主题 string, 消息 ...interface{})

X消息_发布 向指定主题发布一条消息。 所有订阅了该主题的订阅者都会收到此消息。 发布操作是异步的,不会等待订阅者处理完成。

参数:

  • 总线: 消息总线实例
  • 主题: 消息主题名称
  • 消息: 要发布的消息内容(可变参数)

func X消息_取消订阅

func X消息_取消订阅(总线 messagebus.MessageBus, 主题 string, 回调函数 interface{}) error

X消息_取消订阅 取消订阅指定主题。 取消后不再接收该主题的消息。

参数:

  • 总线: 消息总线实例
  • 主题: 要取消订阅的主题名称
  • 回调函数: 之前订阅时使用的回调函数

返回:

  • error: 取消订阅失败时返回错误

func X消息_订阅

func X消息_订阅(总线 messagebus.MessageBus, 主题 string, 回调函数 interface{}) error

X消息_订阅 订阅指定主题的消息。 当有消息发布到该主题时,回调函数会被异步调用。

参数:

  • 总线: 消息总线实例
  • 主题: 要订阅的主题名称
  • 回调函数: 接收消息的回调函数

返回:

  • error: 订阅失败时返回错误

func X系统_取CPU使用率

func X系统_取CPU使用率(间隔 int) ([]float64, error)

X系统_取CPU使用率 获取 CPU 使用率百分比。

参数:

  • 间隔: 采样间隔(秒),0 表示瞬时值

返回:

  • []float64: 各核心的使用率(0-100)
  • error: 获取失败时返回错误

func X系统_取CPU信息

func X系统_取CPU信息() ([]cpu.InfoStat, error)

X系统_取CPU信息 获取 CPU 信息,包括核心数、型号等。

返回:

  • []cpu.InfoStat: CPU 信息列表(多 CPU 时有多个元素)
  • error: 获取失败时返回错误

func X系统_取CPU核心数

func X系统_取CPU核心数() (int, error)

X系统_取CPU核心数 获取 CPU 逻辑核心数。

返回:

  • int: 逻辑核心数,如 8
  • error: 获取失败时返回错误

func X系统_取CPU物理核心数

func X系统_取CPU物理核心数() (int, error)

X系统_取CPU物理核心数 获取 CPU 物理核心数。

返回:

  • int: 物理核心数
  • error: 获取失败时返回错误

func X系统_取Go版本

func X系统_取Go版本() string

X系统_取Go版本 获取当前 Go 编译器版本。

返回:

  • string: Go 版本字符串,如 "go1.22.0"

func X系统_取主机信息

func X系统_取主机信息() (*host.InfoStat, error)

X系统_取主机信息 获取主机信息,包括主机名、操作系统、内核版本等。

返回:

  • *host.InfoStat: 主机信息
  • error: 获取失败时返回错误

func X系统_取交换区信息

func X系统_取交换区信息() (*mem.SwapMemoryStat, error)

X系统_取交换区信息 获取交换区(Swap)使用情况。

返回:

  • *mem.SwapMemoryStat: 交换区信息
  • error: 获取失败时返回错误

func X系统_取内存信息

func X系统_取内存信息() (*mem.VirtualMemoryStat, error)

X系统_取内存信息 获取内存使用情况,包括总量、已用、可用等。

返回:

  • *mem.VirtualMemoryStat: 内存信息
  • error: 获取失败时返回错误

func X系统_取开机时间

func X系统_取开机时间() (uint64, error)

X系统_取开机时间 获取系统开机时长(秒)。

返回:

  • uint64: 开机时长(秒)
  • error: 获取失败时返回错误

func X系统_取当前进程ID

func X系统_取当前进程ID() int32

X系统_取当前进程ID 获取当前进程的 PID。

返回:

  • int32: 当前进程 ID

func X系统_取当前进程信息

func X系统_取当前进程信息() (*process.Process, error)

X系统_取当前进程信息 获取当前进程的详细信息。

返回:

  • *process.Process: 当前进程对象
  • error: 获取失败时返回错误

func X系统_取总CPU使用率

func X系统_取总CPU使用率(间隔 int) (float64, error)

X系统_取总CPU使用率 获取总体 CPU 使用率百分比。

参数:

  • 间隔: 采样间隔(秒),0 表示瞬时值

返回:

  • float64: 总体 CPU 使用率(0-100)
  • error: 获取失败时返回错误

func X系统_取操作系统类型

func X系统_取操作系统类型() string

X系统_取操作系统类型 获取当前操作系统名称。 如 "windows"、"linux"、"darwin" 等。

返回:

  • string: 操作系统名称

func X系统_取磁盘IO信息

func X系统_取磁盘IO信息() (map[string]disk.IOCountersStat, error)

X系统_取磁盘IO信息 获取磁盘 IO 统计信息(读写字节数、读写次数等)。

返回:

  • map[string]disk.IOCountersStat: 键为磁盘设备名,值为 IO 统计
  • error: 获取失败时返回错误

func X系统_取磁盘使用量

func X系统_取磁盘使用量(路径 string) (*disk.UsageStat, error)

X系统_取磁盘使用量 获取指定路径的磁盘使用量。

参数:

  • 路径: 磁盘路径,如 "/" 或 "C:\\"

返回:

  • *disk.UsageStat: 磁盘使用信息
  • error: 获取失败时返回错误

func X系统_取磁盘信息

func X系统_取磁盘信息() ([]disk.PartitionStat, error)

X系统_取磁盘信息 获取磁盘分区使用情况。

返回:

  • []disk.PartitionStat: 磁盘分区列表
  • error: 获取失败时返回错误

func X系统_取系统架构

func X系统_取系统架构() string

X系统_取系统架构 获取当前系统的 CPU 架构名称。 如 "amd64"、"arm64"、"386" 等。

返回:

  • string: CPU 架构名称

func X系统_取系统负载

func X系统_取系统负载() (*load.AvgStat, error)

X系统_取系统负载 获取系统平均负载(1分钟、5分钟、15分钟)。 Linux/macOS 下返回真实负载值,Windows 下通过进程数模拟。

返回:

  • *load.AvgStat: 系统负载信息
  • error: 获取失败时返回错误

func X系统_取网络IO信息

func X系统_取网络IO信息() ([]net.IOCountersStat, error)

X系统_取网络IO信息 获取网络接口的 IO 统计信息(收发字节数、包数等)。

返回:

  • []net.IOCountersStat: 网络 IO 统计列表
  • error: 获取失败时返回错误

func X系统_取网络接口信息

func X系统_取网络接口信息() ([]net.InterfaceStat, error)

X系统_取网络接口信息 获取网络接口列表。

返回:

  • []net.InterfaceStat: 网络接口信息列表
  • error: 获取失败时返回错误

func X系统_取网络连接信息

func X系统_取网络连接信息() ([]net.ConnectionStat, error)

X系统_取网络连接信息 获取当前活动的网络连接列表。

返回:

  • []net.ConnectionStat: 网络连接信息列表
  • error: 获取失败时返回错误

func X系统_取进程CPU占用

func X系统_取进程CPU占用(pid int32) float64

X系统_取进程CPU占用 根据进程 PID 获取进程的 CPU 使用率百分比。

参数:

  • pid: 进程 ID

返回:

  • float64: CPU 使用率(0-100);获取失败返回 0

func X系统_取进程信息

func X系统_取进程信息(pid int32) (*process.Process, error)

X系统_取进程信息 根据进程 PID 获取进程详细信息。 包括进程名、状态、CPU/内存占用、创建时间等。

参数:

  • pid: 进程 ID

返回:

  • *process.Process: 进程对象;进程不存在返回 nil
  • error: 获取失败时返回错误

func X系统_取进程内存占用

func X系统_取进程内存占用(pid int32) float64

X系统_取进程内存占用 根据进程 PID 获取进程的内存占用(字节)。

参数:

  • pid: 进程 ID

返回:

  • float64: 内存占用(字节);获取失败返回 0

func X系统_取进程列表

func X系统_取进程列表() ([]*process.Process, error)

X系统_取进程列表 获取当前系统中所有正在运行的进程列表。

返回:

  • []process.Process: 进程对象列表
  • error: 获取失败时返回错误

func X系统_取进程名

func X系统_取进程名(pid int32) string

X系统_取进程名 根据进程 PID 获取进程名称。

参数:

  • pid: 进程 ID

返回:

  • string: 进程名称;获取失败返回空字符串

func X系统_取逻辑处理器数

func X系统_取逻辑处理器数() int

X系统_取逻辑处理器数 获取 Go 运行时可用的逻辑处理器数量。 等同于 GOMAXPROCS 的默认值。

返回:

  • int: 逻辑处理器数量

func X系统_是否64位系统

func X系统_是否64位系统() bool

X系统_是否64位系统 判断当前操作系统是否为 64 位架构。

返回:

  • bool: 64 位返回 true,32 位返回 false

func Y原子_递减

func Y原子_递减(整数变量 *int64) int64

Y原子_递减 对 int64 变量进行原子递减 1 操作,线程安全。 等同于 atomic.AddInt64(&变量, -1)。

参数:

  • 整数变量: 指向待递减变量的指针

返回:

  • int64: 递减后的新值

func Y原子_递增

func Y原子_递增(整数变量 *int64) int64

Y原子_递增 对 int64 变量进行原子递增 1 操作,线程安全。 等同于 atomic.AddInt64(&变量, 1)。

参数:

  • 整数变量: 指向待递增变量的指针

返回:

  • int64: 递增后的新值

示例:

var 计数器 int64 = 0
Y原子_递增(&计数器)  // 1
Y原子_递增(&计数器)  // 2

func Z字节集_Gzip解压

func Z字节集_Gzip解压(字节集 []byte) (data []byte, err error)

Z字节集_Gzip解压 对 Gzip 压缩的字节集进行解压。

参数:

  • 字节集: Gzip 压缩的字节集

返回:

  • data: 解压后的字节集
  • err: 解压失败时的错误信息(空输入或格式错误等)

func Z字节集_十六进制到字节集

func Z字节集_十六进制到字节集(原始16进制文本 string) []byte

Z字节集_十六进制到字节集 将十六进制字符串转换为字节集。 每两个十六进制字符对应一个字节。

参数:

  • 原始16进制文本: 十六进制格式的字符串(如 "48656c6c6f")

返回:

  • []byte: 转换后的字节集;转换失败返回空字节集

示例:

Z字节集_十六进制到字节集("48656c6c6f")  // []byte("Hello")

func Z字节集_字节集到十六进制

func Z字节集_字节集到十六进制(字节集 []byte) string

Z字节集_字节集到十六进制 将字节集转换为十六进制字符串(小写)。

参数:

  • 字节集: 待转换的字节集

返回:

  • string: 小写十六进制格式的字符串

示例:

Z字节集_字节集到十六进制([]byte("Hello"))  // "48656c6c6f"

func Z字节集_寻找

func Z字节集_寻找(被搜寻的字节集 []byte, 欲寻找的字节集 []byte, 起始搜寻位置 int) int

Z字节集_寻找 在字节集中查找子字节集的位置。 位置从 1 开始计数(兼容易语言习惯),未找到返回 -1。

参数:

  • 被搜寻的字节集: 被搜索的源字节集
  • 欲寻找的字节集: 要查找的目标字节集
  • 起始搜寻位置: 开始搜索的位置(从 1 开始),无效值自动设为 1

返回:

  • int: 找到的位置(从 1 开始);未找到返回 -1

func Z正则_取Url连接地址

func Z正则_取Url连接地址(str string) []string

Z正则_取Url连接地址 从文本中提取所有 HTTP/HTTPS URL 链接。

参数:

  • str: 包含 URL 的源文本

返回:

  • []string: 提取到的 URL 数组

func Z正则_取ip端口

func Z正则_取ip端口(str string) string

Z正则_取ip端口 从文本中提取第一个 IP:端口 格式的地址。

参数:

  • str: 包含 IP:端口的源文本

返回:

  • string: 第一个匹配的 IP:端口 字符串;未找到返回空串

func Z正则_取ip端口多个

func Z正则_取ip端口多个(str string) []string

Z正则_取ip端口多个 从文本中提取所有 IP:端口 格式的地址。

参数:

  • str: 包含 IP:端口的源文本

返回:

  • []string: 所有匹配的 IP:端口 字符串数组;未找到返回空数组

func Z正则_取全部匹配子文本

func Z正则_取全部匹配子文本(str, 正则表达式 string) []string

Z正则_取全部匹配子文本 使用正则表达式提取所有匹配的子文本。

参数:

  • str: 源文本
  • 正则表达式: 正则表达式模式

返回:

  • []string: 所有匹配结果的数组

func Z正则_是否英数

func Z正则_是否英数(s string, msg *string) bool

Z正则_是否英数 校验字符串是否仅包含英文字母和数字。

参数:

  • s: 待校验的字符串
  • msg: 校验失败时的错误信息输出指针

返回:

  • bool: true 表示仅包含英文字母和数字

func Z正则_校验email

func Z正则_校验email(s string, msg *string) bool

Z正则_校验email 校验电子邮件地址格式。 支持常见的邮箱格式,如 user@example.com、user.name+tag@sub.domain.com。

参数:

  • s: 待校验的邮箱字符串
  • msg: 校验失败时的错误信息输出指针

返回:

  • bool: true 表示邮箱格式合法

func Z正则_校验代理用户名

func Z正则_校验代理用户名(s string, msg *string) bool

Z正则_校验代理用户名 校验代理用户名,只允许英文字母、数字和中文字符。

参数:

  • s: 待校验的用户名字符串
  • msg: 校验失败时的错误信息输出指针

返回:

  • bool: true 表示用户名格式合法

func Z正则_校验密码

func Z正则_校验密码(s string, msg *string) bool

Z正则_校验密码 校验密码强度,要求 5-17 个非空白字符。 如果不匹配,通过 msg 指针返回错误提示信息。

参数:

  • s: 待校验的密码字符串
  • msg: 校验失败时的错误信息输出指针

返回:

  • bool: true 表示密码格式合法

func Z正则_校验用户名

func Z正则_校验用户名(s string, msg *string) bool

Z正则_校验用户名 校验用户名,要求 5-17 个单词字符(字母、数字、下划线)。

参数:

  • s: 待校验的用户名字符串
  • msg: 校验失败时的错误信息输出指针

返回:

  • bool: true 表示用户名格式合法

func Z正则_校验纯数字

func Z正则_校验纯数字(s string, msg *string) bool

Z正则_校验纯数字 校验字符串是否为纯数字(支持负号和小数点)。

参数:

  • s: 待校验的字符串
  • msg: 校验失败时的错误信息输出指针

返回:

  • bool: true 表示是纯数字

func Z正则_校验纯数字指定位数

func Z正则_校验纯数字指定位数(s string, msg *string, 位数 int) bool

Z正则_校验纯数字指定位数 校验字符串是否为指定位数的纯数字。

参数:

  • s: 待校验的字符串
  • msg: 校验失败时的错误信息输出指针
  • 位数: 要求的数字位数

返回:

  • bool: true 表示符合指定位数的纯数字

Types

type LRUCache

type LRUCache struct {
	// contains filtered or unexported fields
}

LRUCache implements a simple LRU cache for caching frequently used data.

func NewLRUCache

func NewLRUCache(capacity int) *LRUCache

NewLRUCache creates a new LRU cache instance.

Parameters:

  • capacity: cache capacity

Returns:

  • *LRUCache: LRU cache instance

func (*LRUCache) Clear

func (l *LRUCache) Clear()

Clear clears all items from the cache.

func (*LRUCache) Get

func (l *LRUCache) Get(key int) (interface{}, bool)

Get retrieves a value from the cache.

Parameters:

  • key: cache key

Returns:

  • interface{}: cached value
  • bool: whether the key exists

func (*LRUCache) Put

func (l *LRUCache) Put(key int, value interface{})

Put inserts a value into the cache.

Parameters:

  • key: cache key
  • value: cached value

func (*LRUCache) Size

func (l *LRUCache) Size() int

Size returns the current cache size.

type Post数据类

type Post数据类 struct {
	// contains filtered or unexported fields
}

Post数据类 HTTP POST 请求参数构建器。 用于构建 key=value 格式的 POST 表单数据或协议头数据。 内部维护 keys 和 values 两个平行的字符串数组,保持插入顺序。

func (*Post数据类) H获取JSON文本

func (p *Post数据类) H获取JSON文本() string

H获取JSON文本 将所有键值对拼接为 JSON 对象格式的字符串。 格式:{"key1":"value1","key2":"value2"} 注意:值中的特殊字符(如双引号)未做转义处理,复杂场景请使用 encoding/json。

返回:

  • string: JSON 格式的字符串

func (*Post数据类) H获取Key数组

func (p *Post数据类) H获取Key数组() []string

H获取Key数组 返回所有键名的数组副本。

返回:

  • []string: 键名数组

func (*Post数据类) H获取Post数据

func (p *Post数据类) H获取Post数据(是否URL编码 bool) string

H获取Post数据 将所有键值对拼接为 POST 表单格式的字符串。 格式:key1=value1&key2=value2

参数:

  • 是否URL编码: true 时对所有 value 进行 URL 编码

返回:

  • string: 拼接后的 POST 数据字符串

func (*Post数据类) H获取Value数组

func (p *Post数据类) H获取Value数组() []string

H获取Value数组 返回所有值的数组副本。

返回:

  • []string: 值数组

func (*Post数据类) H获取协议头数据

func (p *Post数据类) H获取协议头数据(是否URL编码 bool) string

H获取协议头数据 将所有键值对拼接为 HTTP 协议头格式的字符串。 格式:key1: value1\r\nkey2: value2

参数:

  • 是否URL编码: true 时对所有 value 进行 URL 编码

返回:

  • string: 拼接后的协议头字符串

func (*Post数据类) Q取值

func (p *Post数据类) Q取值(key string) string

Q取值 根据键名获取对应的值。

参数:

  • key: 要查找的参数名

返回:

  • string: 对应的参数值;键名不存在时返回空串

func (*Post数据类) Q清空

func (p *Post数据类) Q清空()

Q清空 清除所有键值对,重置为空状态。

func (*Post数据类) S删除

func (p *Post数据类) S删除(key string)

S删除 删除指定键名的键值对。 如果键名不存在,不做任何操作。

参数:

  • key: 要删除的参数名

func (*Post数据类) T添加

func (p *Post数据类) T添加(key, value string, 转码 bool)

T添加 向 Post 数据中添加一个键值对。

参数:

  • key: 参数名
  • value: 参数值
  • 转码: true 时对 value 进行 URL 编码,false 时保留原值

func (*Post数据类) T添加_批量

func (p *Post数据类) T添加_批量(文本 string, 转码 bool)

T添加_批量 从 "key1=value1&key2=value2" 格式的文本批量添加键值对。

参数:

  • 文本: 以 & 分隔、= 连接的键值对文本
  • 转码: true 时对 value 进行 URL 编码

func (*Post数据类) Z置值

func (p *Post数据类) Z置值(key, value string)

Z置值 设置指定键名的值。如果键名已存在则更新,不存在则添加。

参数:

  • key: 参数名
  • value: 新的参数值

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL