Go教程技术文章
-
Go compress/zlib.NewReader 可以把 zlib 压缩数据接成 io.ReadCloser,随后用 io.Copy 或自定义读取逻辑流式解压。本文从格式边界、创建错误、资源关闭、读取错误和预置字典几个角度给出可直接改造的写法。191 收藏 -
Go database/sql.ColumnTypes 可以读取动态查询结果的列名、数据库类型名和可空信息。本文说明 Name、DatabaseTypeName、Nullable 的边界,重点解释 Nullable 的 ok=false 为什么不能当成不可空。191 收藏 -
围绕 Go maps.Keys 讲清无序键迭代、slices.Sorted 排序、空映射 nil 结果、后续值读取与并发写入边界。191 收藏 -
用 Go 标准库 net/netip 解析 CIDR 网段,区分掩码规范化与原始配置,演示 Prefix.Contains 的边界判断,并给出配置文件校验和错误处理方式。190 收藏 -
Go 里用 sort.SliceStable 按多个字段排序时,比较器要按优先级逐层比较,所有字段相等则返回 false,稳定性才能保留原始顺序。190 收藏 -
用 Go 1.27 的 goroutineleak profile 给集成测试增加可留存的并发泄漏证据,掌握 pprof 入口、测试采集、结果解读与 CI 边界。190 收藏 -
用 Go log/slog.Value.Resolve 展开 LogValuer 延迟字段,说明自定义 Handler 如何遍历 Record.Attrs、处理 Group,以及递归和错误边界。190 收藏 -
用 Gonum stat.LinearRegression 拟合一元线性回归,说明 x、y 样本、权重、origin 参数、截距斜率和 R² 的关系,并给出适合工程读数的判断边界。190 收藏 -
Go 1.23 起可以用 maps.Keys 把 map 的键暴露为迭代器;如果输出、日志或测试需要稳定顺序,再交给 slices.Sorted 或 slices.SortedFunc 生成新的键切片。本文按调试清单说明版本、顺序和键类型边界。190 收藏 -
Go 1.23 起,range over func 可以用 yield 的布尔返回值把消费者的 break 传回函数迭代器。本文用批处理示例说明如何及时停止底层遍历、避免物化中间切片,并区分减少额外分配与保证零分配的边界。190 收藏 -
Go 的 net.LookupTXT 返回的是 TXT 记录切片,同一条记录的多个字符串片段已经被拼成一个字符串;本文说明如何保留多条记录边界、设置查询超时并做长度统计。190 收藏 -
context.WithoutCancel 适合让收尾任务忽略上游取消,但它不会自动提供超时、Done 或可用的 Deadline。本文用请求日志落盘和资源清理场景拆开它的边界,并给出可复现的回收与超时写法。189 收藏 -
govulncheck 的结果不只是在说依赖版本旧,还在说明漏洞符号是否能从项目入口被调用。本文按导入、符号和测试范围拆分扫描,帮助你判断哪些结果需要立即升级。189 收藏 -
用 Go archive/tar 解压时,先按 Header 区分目录、普通文件和链接,再把普通文件复制到安全目标路径,避免目录误写和归档路径越界。189 收藏 -
通过 Go encoding/xml 的 UnmarshalXML 将旧字段名、属性和文本金额映射到领域结构,并用 DecodeElement 控制单元素消费与错误边界。189 收藏