Go教程技术文章
-
区分单次多包测试与多次分片覆盖数据,使用测试二进制采集中间资料、covdata merge 合并,并生成包级、函数级及 HTML 报告,说明范围与计数边界。163 收藏 -
围绕 sync.Pool 的临时对象语义,说明 New、Get、Put、Reset 和对象所有权边界,解释为什么 Pool 不能保存业务状态、不能依赖命中率与取出顺序,并给出缓冲区复用与方案选型示例。162 收藏 -
用 Go 的 image.Rectangle.Intersect 计算两个图片边界的共同区域,理解半开区间、空矩形、边界相接和 SubImage 裁剪坐标的处理方式。162 收藏 -
用 Go flag.FlagSet.SetOutput 把 usage 和解析错误写入指定日志目标,配合 ContinueOnError、io.MultiWriter 和自定义 Usage 处理多命令行场景。162 收藏 -
用不可变配置快照配合 atomic.Pointer,在并发读多写少的 Go 服务中实现无锁读取和原子热切换。本文覆盖初始化、发布前校验、旧快照保留与竞态测试。162 收藏 -
用 Go 标准库 http.Flusher 实现分片响应刷新,说明能力判断、写入顺序、测试方式,以及包装器和代理缓冲的边界。161 收藏 -
Go 1.26 新增 crypto/hpke 包后,可以用 KEM、KDF 和 AEAD 组合一次混合公钥加密。本文从密钥生成到 Seal/Open 闭环,说明封装信息、info、AAD 和状态上下文的关系。161 收藏 -
Go 的 encoding/json 默认会忽略结构体中不存在的 JSON 字段。本文说明如何用 Decoder.DisallowUnknownFields 把请求字段边界前移到解码入口,并处理未知字段、类型错误、尾随 JSON 与接口兼容性取舍。161 收藏 -
Go net.Resolver.LookupHost 接收 context.Context,返回主机地址字符串切片和 error。本文从一次服务发现调用的实际体验出发,说明怎样设置超时、区分取消与 DNS 失败,并选择适合的解析 API。161 收藏 -
regexp/syntax.IsWordChar 只把 ASCII 的 A-Z、a-z、0-9 和下划线视为单词字符,服务于 \b 与 \B 的零宽断言。本文用 Go 示例说明返回范围、rune 输入、Unicode 边界和实际选型。161 收藏 -
Go Modules 项目中的 go.sum 应与 go.mod 一起纳入版本控制。本文从校验记录、模块代理、私有依赖和 CI 只读构建四个角度,说明怎样生成、评审和提交 go.sum。160 收藏 -
Go 中不存在可靠的独立端口预检查。用 net.ListenConfig.Listen 直接尝试绑定,成功才代表当前进程取得监听权;不需要固定端口时使用 :0 并从 Listener.Addr 读取系统分配的地址。160 收藏 -
Go 的 url.UserPassword 会创建包含用户名和密码的 Userinfo,再挂到 url.URL.User 字段中。本文说明 URL 的构造、编码、读取与 Redacted 脱敏输出,并提醒不要把密码直接写入日志或普通 URL。160 收藏 -
Go 1.24 的 testing.T.Context 会在测试完成、Cleanup 执行前取消。本文从后台 goroutine 未退出的故障现象出发,说明如何传递 t.Context、响应 Done,并用 Cleanup 等待任务收尾。160 收藏 -
Go io.LimitReader 会把底层 Reader 的非 EOF 错误原样传回,但达到读取上限时返回的是 EOF,不能直接当作“底层读完”。本文用 io.ReadAll、io.LimitedReader 和 %w 包装讲清错误保留、截断判断与流式读取边界。160 收藏