Go教程技术文章
-
Go encoding/json/v2 默认把 nil map 编码为空 JSON 对象。本文说明怎样用 FormatNilMapAsNull 恢复 null 语义,并给出字段级覆盖与迁移回归清单。369 收藏 -
本文用 embed.FS 和 fs.Glob 演示如何按层级模式查找嵌入文件,说明路径根、通配符、无匹配结果、错误模式与 fs.ReadFile 的衔接,并补充 fs.Sub 缩短匹配根的写法。369 收藏 -
用go-message/mail的NextPart识别附件并逐个保存,示例涵盖流式复制、独立文件名、大小与数量限制,以及页面如何呈现部分成功和失败结果。369 收藏 -
Go slices.Replace 可以把切片的半开区间替换成任意数量的新元素。本文用权限列表和批处理记录说明变长替换、空替换、索引边界、底层数组复用与结果判断,帮助你写出可复查的切片更新代码。368 收藏 -
用Gonum stat计算带权均值、样本方差和总体方差,结合频数示例说明输入约束、分母差异与权重归一化的影响。368 收藏 -
Go crypto/tls 用 tls.Config.NextProtos 声明客户端的 ALPN 协议偏好,并在握手完成后从 ConnectionState.NegotiatedProtocol 读取最终结果。本文说明成功协商、未协商与无共同协议的处理边界。367 收藏 -
说明 go mod edit -fmt 如何只整理 go.mod 的文本格式,区分 -print、-json、go get 与 go mod tidy 的职责,避免把排版命令当成依赖维护命令。367 收藏 -
Go regexp 的 LiteralPrefix 会返回任何匹配必须以其开头的字面量前缀,以及该前缀是否已经覆盖整个正则。本文用几个模式说明如何读取这两个返回值、做候选预筛选,并避开把前缀误当成完整匹配的常见误区。367 收藏 -
Go x/text/secure/precis OpaqueString 可以在保留大小写的前提下准备国际化口令文本。本文说明 String 的使用、NFC 规范化、空结果处理,以及准备后再哈希的落地顺序。367 收藏 -
Go compress/gzip 的 Write 不代表压缩流已经完成,必须调用 Writer.Close 刷新未写数据并写入 GZIP 尾部。本文说明 gzip.Writer 与底层 io.Writer 的关闭责任、defer 顺序、Close 错误处理,以及 Flush 和 Reset 的适用边界。367 收藏 -
用 runtime.ReadMemStats 读取 Go 内存快照,区分堆对象当前量、累计分配量与运行时系统量,给出独立局部变量采样和 JSON 输出示例,说明 RSS、GC、并发共享变量与升级回归的边界。366 收藏 -
Go slices.Grow 用来在批量追加前保证切片还有 n 个元素的容量空间。本文区分长度、容量和追加预算,说明为什么必须接住返回值,以及空切片、容量足够、负数参数和过大申请时的处理边界。366 收藏 -
用 httptest.NewServer 隔离真实上游,搭建带路由和参数约束的临时库存服务。示例覆盖地址与客户端注入、超时、重定向策略、响应断言和资源清理,并区分 Recorder、TLS 与新测试接口。366 收藏 -
用 Go json.Valid 快速判断原始字节是否构成完整 JSON,并厘清它与 json.Unmarshal、json.Decoder 以及字段业务校验的职责边界。366 收藏 -
Go mod tidy 会扫描测试导入和构建标签,测试依赖被调整不一定是误删。本文用导入点、条件测试、-diff 预览和 CI 回归四个检查点,整理出可复查的模块依赖边界。365 收藏