Go教程技术文章
-
Go 使用 net/textproto.ReadMIMEHeader 报非法字段时,按缺少冒号、字段名 token、字段值字节和首行缩进四个边界定位,并用原始转义与十六进制日志修复上游输入。471 收藏 -
围绕 Go errors.As 讲清自定义错误类型、错误包装链、Unwrap 和目标指针的配合方式,帮助业务层按稳定字段分层处理错误而不是比较易变的文本。471 收藏 -
Go 的 multipart.Writer 默认使用随机 boundary,直接把请求体拿去做接口签名时可能导致同样字段生成不同字节。本文用 SetBoundary 固定边界,说明字段顺序、Close、Content-Type 和原始 body 字节的签名边界,并给出排查清单。471 收藏 -
Golang · Go教程 | 2星期前 | 性能优化 · 并发编程 · 同步 · Go教程 · Go add sync/atomic CompareAndSwap 并发计数器 atomic.Int64 Load
Go atomic.Int64 适合维护并发请求数、在途任务数等单值状态。本文从普通自增的竞态出发,说明 Add、Load、Store 和 CompareAndSwap 的使用边界,以及零值、复制和复合条件判断的注意事项。471 收藏 -
go tool pprof 的 -http 参数可以显式指定 Web 界面的 host:port。本文用实际调试场景区分 profile 数据源与界面监听地址,并说明 127.0.0.1、0.0.0.0、固定端口和随机端口的取舍。471 收藏 -
Golang · Go教程 | 2个月前 | 标准库 · golang · 测试 · go · 迭代器 · 字符串处理 · Go 迭代器 换行 range over function strings.Lines
Go 1.24 引入的 strings.Lines 返回一次性迭代器,逐行保留换行符;本文用可运行示例拆开末尾换行、空输入、最后一行和重复消费等边界,并给出测试写法。470 收藏 -
Go 1.22 引入的 Request.PathValue 不是从 URL.Path 里随便切字符串,而是读取 ServeMux 匹配结果中的命名通配符。本文用最小路由示例核对普通通配符、{name...}、未匹配请求、URL 解码和 SetPathValue 的边界。470 收藏 -
用 encoding/xml.Decoder 按 Token 扫描大型 XML,只在命中目标元素时 DecodeElement,并用 Skip 跳过无关大节点,降低整体加载带来的内存峰值。470 收藏 -
Go 的 math/big.Float 使用二进制尾数精度,不是十进制小数位。本文用原创示例解释 SetPrec、舍入模式、运算接收者和 Text 输出之间的区别。470 收藏 -
使用 Go io.CopyN 写归档文件时,不能只看目标文件是否存在;本文用 written、err、临时文件和 Stat 组合确认目标长度,避免把部分归档误当成功。470 收藏 -
bufio.Reader.ReadString 读不到分隔符时,可能返回已经读到的字符串和 io.EOF。本文用返回值边界、最后一段处理和读取循环说明如何避免丢数据、误报错误与死循环。470 收藏 -
对比 iter.Seq2 键值流的三种错误契约,给出可复用的泛型收集器,并说明 maps.Collect、终态错误与 Pull2 的边界。470 收藏 -
通过一个Go事件分类器区分go test -json的普通输出、框架文本与多行报错,保留包和测试归属,并说明CI应独立传递测试退出状态。470 收藏 -
Go 1.27 扩展了泛型函数的类型推断场景。本文用函数类型赋值、类型转换和 channel send 三个边界,说明何时可以省略类型参数,以及旧代码迁移时如何核对。469 收藏 -
Go 项目可以用 go build 的 -ldflags=-X 在构建时写入版本号和提交号,再配合 -trimpath 减少本机路径差异。本文给出变量定义、脚本参数、可复现边界和发布前检查方法。469 收藏