Go语言技术文章
-
Go INI 默认会把同名键视为同一个 Key。本文用 ShadowLoad、ValueWithShadows 和 LoadOptions 说明怎样保留重复键的多个值,以及完全相同的重复值何时会被去重。446 收藏 -
Go INI 可以把文件、[]byte 和 Reader 作为多个配置源按顺序合并,后加载源覆盖同名键。本文用默认配置、环境覆盖和运行时字节配置说明优先级写法,以及 Loose、ShortCircuit、Append 的选型边界。210 收藏 -
使用 go-ini 读取 INI 时,可以用嵌套结构体上的 ini 标签对应节名,再用字段标签对应键名;本文给出 MapTo、StrictMapTo、类型转换和常见排查边界。200 收藏 -
讲解 JSON Pointer 对斜杠及波浪线的编码,通过完整 Go JSONPatch 示例区分单个成员和嵌套路径,并说明逐段构造、JSON 字符串编码与补丁错误处理。187 收藏 -
用 github.com/evanphx/json-patch/v5 的 MergeMergePatches 合并两份 JSON Merge Patch,并说明补丁顺序、null 删除、嵌套对象和数组整体替换的边界。208 收藏 -
Go 中应用 JSON Patch 的关键是先用 DecodePatch 解析 RFC 6902 操作数组,再用 Apply 或 ApplyWithOptions 作用到原始 JSON 文档,并明确缺失路径、copy 扩张和业务校验的边界。164 收藏 -
通过完整 Go 示例讲解 Validator TagNameFunc 的注册与错误提取,区分 JSON 字段名、Go 字段名和嵌套路径,说明缓存时机及 json 忽略标签的处理方式。139 收藏 -
Go Validator 的字段标签适合校验单个字段,密码与确认密码、起止时间等跨字段不变量需要结构体级校验。本文用 RegisterStructValidation 注册 StructLevelFunc,说明 ReportError、错误路径、初始化时机和安全边界。166 收藏 -
Go Validator 的 dive 用于把校验规则下沉到切片元素。本文用批量邮箱和订单明细示例说明容器规则、元素规则、嵌套结构体、错误下标与空值边界的写法。318 收藏 -
Go Squirrel 使用 PlaceholderFormat 在 Question、Dollar、Colon 和 AtP 之间转换数据库占位符,本文说明统一配置、args 对应、嵌套查询和字面问号的处理边界。339 收藏 -
Squirrel 的 Expr 可以把 SQL 片段与绑定参数封装成可组合的 Sqlizer。本文从普通参数、嵌套表达式、ToSql 和 PlaceholderFormat 四个角度说明怎样保持 SQL 与 args 的顺序一致,并避开字符串拼接和问号转义误区。115 收藏 -
使用 Squirrel Eq 构造可选筛选条件,通过完整函数区分省略、false、0、SQL NULL 和 IN 列表,并说明固定列名、占位符及 SQL 与 args 配对的边界。430 收藏 -
Go Cron 关闭时不要只调用 Stop 就退出进程。Stop 会停止新的调度,并返回一个 Context;等待它的 Done 通道,才能等正在执行的任务结束。本文再补上退出超时和任务主动取消的边界。382 收藏 -
robfig/cron/v3 默认会在独立 goroutine 中运行任务。本文用 SkipIfStillRunning 配置同一进程内的跳过策略,并对比 DelayIfStillRunning、单任务包装和多实例边界。157 收藏 -
Go Cron 可以在单个 Cron 表达式前加 CRON_TZ=Area/City,让该任务按独立 IANA 时区计算,同时保留调度器的默认时区。本文说明全局配置、单任务覆盖、错误处理与夏令时边界。345 收藏