Go语言技术文章
-
本文演示 Go base32.NewEncoding 自定义 32 字节字母表的写法,说明唯一字符、UTF-8 字节、填充、大小写和跨系统兼容边界。115 收藏 -
本文说明 Go encoding/base32 的 CorruptInputError 如何表示首个非法输入字节偏移,并用 errors.As、UTF-8 位置换算、上下文切片和 padding 配置完成可读诊断。259 收藏 -
Go weak.Pointer 的比较规则能服务弱键映射,却不能替代业务 ID、持久句柄或对象存活证明。本文结合 Value、KeepAlive、终结器复活与内部指针边界,给出稳定 ID 和弱引用分离的实现方式。117 收藏 -
Go 模块代理返回 404 和 410 时,命令通常都会按 GOPROXY 顺序回退;真正需要排查的是请求资源、分隔符和其他终止错误。本文用下载命令拆开判断路径。107 收藏 -
Go vendor 目录已经更新却仍提示依赖不一致,通常是 vendor/modules.txt 与 go.mod 的 require、replace 或显式标记不同步,或在 workspace 中用了单模块命令。本文给出完整排查流程。408 收藏 -
Go workspace 模式下 go.mod 的本地 replace 看似失效,通常是父目录 go.work 已被自动启用、工作区 replace 优先级更高,或版本限定没有匹配构建列表。本文给出定位和修复方法。350 收藏 -
Go execution trace 看不到自定义任务区域,通常与采集窗口、Task 与 Region 的边界、Context 传递或查看范围有关。本文按四个检查点定位原因,并给出可复用的 runtime/trace 写法。312 收藏 -
Go weak.Pointer 适合做不阻止对象回收的弱索引:业务代码保留强引用,索引只保存 weak.Pointer,读取时用 Value 判断对象是否仍可用,并在失效后删除旧条目。487 收藏 -
Go weak.Pointer.Value 返回 nil 不代表指针损坏,而是弱缓存对象已经不可达。本文用并发安全的缓存示例说明如何判断失效、回源重建、回填弱引用,并解释 GC 与 KeepAlive 的边界。273 收藏 -
Go unique 负责规范化可比较值,不提供 TTL、容量限制、手工失效、加载错误或命中统计。本文用服务配置场景拆分句柄层与缓存层,说明哪些需求必须继续使用业务缓存。467 收藏 -
Golang · Go教程 | 1星期前 | 标准库 · go · slog · 日志排查 · 结构化日志 slog.Handler LogAttrs Go slog.GroupAttrs 空日志分组
Go slog.GroupAttrs 只负责构造组属性,符合契约的 Handler 会忽略没有有效属性的组。本文通过动态字段示例说明调用端条件追加、零 Attr 过滤与自定义 Handler 排查方法。455 收藏 -
Go mutex profile 统计的是竞争锁时其他 goroutine 的近似累计等待时间,本文解释 Unlock 归因、采样率设置、导出查看和常见误判。232 收藏 -
Go 1.23 起可用 unique.Make 规范化可比较值。本文用重复标签对象示例说明如何保存 unique.Handle[string]、在热路径比较句柄、在输出边界取回 Value,并解释何时不该使用。255 收藏 -
Go 模糊测试里的种子会执行,但不一定产生新的覆盖边或被计为 new interesting。本文从种子语料、输入规范化、守卫条件和覆盖反馈入手,说明如何设计真正命中目标分支的最小种子。183 收藏 -
QueryContext 取消后连接不一定立刻回到连接池。本文从 Rows 生命周期、驱动取消能力和 DB.Stats 观测三个角度定位原因,并给出可复用的释放与排查模板。400 收藏