Go语言技术文章
-
Go 的 http.Client 默认只返回最终响应。本文从一次重定向排查开始,演示如何在 CheckRedirect 中复制请求信息、限制敏感请求头,并保存可验收的重定向链。175 收藏 -
Go 使用 html/template 渲染表单时,校验失败不应只返回一句错误文本。本文用一个注册表单拆开 POST 分支、FormData 回填、字段级错误与焦点提示的调用链,并给出可回归的实现边界。116 收藏 -
embed.FS 读取静态资源时,文件路径必须遵守 io/fs 的相对路径规则。本文用 assets/ 与模板读取场景说明路径前缀、fs.ValidPath 和 fs.Sub 的边界,给出可复用的校验与测试写法。239 收藏 -
用一个可复现的 CSV 导入故障,讲清 encoding/csv 的 FieldsPerRecord、ErrFieldCount、ParseError 和 FieldPos 如何配合定位最后一行字段数不一致。443 收藏 -
Golang · Go教程 | 1星期前 | HTTP · 并发读取 · Go教程 · 流式响应 · Go net/http ResponseController EnableFullDuplex HTTP/1
Go 的 HTTP/1 服务端默认会在写响应前消费未读请求体。本文用分块上传与流式响应示例说明 ResponseController.EnableFullDuplex 的作用、Flush 的边界、HTTP/2 差异和关闭请求体的验收方法。164 收藏 -
从 context.WithTimeout、Done 和 Err 的真实控制流出发,说明为什么设置超时不等于 goroutine 自动停止,并给出可验证的退出写法。287 收藏 -
slices.Grow 的承诺是为接下来的 n 个元素预留至少够用的空间,不是把容量固定成某个数字。理解 len、cap、n 与 append 的关系,才能正确判断是否发生了额外分配。252 收藏 -
上传接口只需要判断图片格式和尺寸时,不必立刻解码整张像素数据。本文用 image.DecodeConfig 说明格式探测、Config 返回值、流位置和大文件校验的边界。140 收藏 -
Go 的 log/slog 会先通过 Logger.Enabled 和 Handler.Enabled 判断日志级别,再决定是否构造记录并交给 Handler.Handle。本文用可运行示例拆开这条调用链,说明昂贵属性计算该放在哪里,以及如何用测试确认过滤边界。352 收藏 -
用 Go crypto/rand.Int 生成安全随机下标时,上界必须是正数且结果不包含上界;文章用最小代码说明无偏分布、big.Int 转换和 Reader 错误处理边界。269 收藏 -
用一个共享计数器测试说明 t.Parallel 的调度边界,再配合 go test -race 和失败证据,让并发问题能稳定复现、定位并回归。207 收藏 -
解释 Go math/big.Int.SetBytes 的大端无符号语义,结合高位字节、负数编码与字节序转换示例,给出解析二进制整数时的检查边界。455 收藏 -
并发任务一旦失败,普通取消信号往往只告诉调用方“停了”,却丢掉了真正原因。本文用 context.WithCancelCause 组织一个批量读取示例,让首个失败原因沿 ctx.Done 传回协调函数,并验证取消、错误回收和结果输出的边界。321 收藏 -
go/token 把源文件位置压缩成 Pos,真正输出错误时还要经过 FileSet.PositionFor。本文用多文件和 //line 场景说明 adjusted、文件偏移与诊断文本如何对应,并给出可复现的核对方式。367 收藏 -
Go 测试里临时目录既要自动清理,又要在失败时保留现场,关键是把清理责任绑定到正确的测试层级。本文用 t.Cleanup、t.TempDir 和子测试演示一次注册、按层执行与失败验收。141 收藏