Go语言技术文章
-
slog.WithGroup 只影响分组建立后追加的字段;JSONHandler 输出嵌套对象,TextHandler 则使用点号限定键名。本文用最小复现定位调用顺序、Group 混用和自定义 Handler 问题,并给出统一构造与测试方法。416 收藏 -
调整 GOGC 或 runtime/debug.SetGCPercent 后,延迟不会按固定方向变化。本文用固定工作负载、隔离的基准样本和延迟分位数,对照分析 GC 频率、堆空间、吞吐与 p95/p99 的关系。416 收藏 -
本文围绕 Badger v4 的 WriteBatch 批量写入,说明 Set 与 Flush 错误的区别、Cancel 的异常兜底作用、MaxPendingTxns 的设置方式,以及如何用稳定业务键和外部批次游标设计可恢复的导入边界。416 收藏 -
Go RSA-PSS 签名成功但验签失败时,优先对齐 digest、Hash 和 SaltLength。本文用 SHA-256 与等 Hash 盐长说明 SignPSS、VerifyPSS 的参数责任,并比较固定盐长与自动盐长在跨实现协议中的取舍。416 收藏 -
Go regexp.FindAllString 返回的是每次完整正则命中的文本。本文用一个日志片段提取小工具说明 n 参数、无匹配、空匹配,以及它和捕获组、字节下标 API 的区别。416 收藏 -
Go 1.25 起可以用 os.Root.Chmod 在受限目录树内修改文件权限。本文给出最小写法,说明相对路径、FileMode、错误分类和跨平台边界。416 收藏 -
Go GOPRIVATE 配置后私有模块仍走代理,常见原因是路径未命中、GONOPROXY 覆盖或配置没有进入目标进程。本文按公共代理、企业代理和校验数据库三条边界给出排查与修复方法。416 收藏 -
使用go-pretty ColumnConfig.WidthMax限制长文本列,通过完整示例说明列号定位、WrapText包装、整表宽度与常见配置误区。416 收藏 -
Go flac 的Num在固定块与可变块模式下分别表示帧序号和首样本编号。本文说明名义块长换算、多声道时间轴与v1.0.14短尾帧边界。416 收藏 -
Go 接口里放入 typed nil 指针后,接口本身可能不等于 nil;comma-ok 断言成功也不代表结果指针可用。本文用 T/V 两层模型和边界封装说明如何排查与处理。416 收藏 -
ast.File.GoVersion 不是 go.mod 的版本字段,而是从当前 Go 文件头的构建约束推导出的最低语言版本。本文拆开两条版本链路,并给出 AST 工具的读取方案。416 收藏 -
Go IndexListExpr 只能表示带多个索引表达式的语法节点,不能单独证明目标是泛型实体、类型实参满足约束或实例化结果可调用。本文用 go/ast 与 go/types 说明两层职责和实用检查流程。416 收藏 -
Go context.WithoutCancel 会切断父 Context 的取消和截止时间继承,但仍可读取 Value。本文用后台收尾场景说明如何再加独立超时,以及哪些请求值不应被带走。416 收藏 -
Go 的一次性初始化不只是“只执行一次”:根据返回值形状选择 OnceFunc、OnceValue 或 OnceValues,并处理错误缓存、panic 复现与重试边界。416 收藏 -
Go 1.23 的 slices.Chunk 返回的是原切片的连续子切片。本文用一个可运行例子说明修改分组结果为何会影响原切片,以及如何用 slices.Clone 建立独立副本。415 收藏