Go教程技术文章
-
Go inspector.WithStack 会把当前 AST 遍历路径以 []ast.Node 传入回调,本文用一个完整示例说明 stack 的顺序、push/pop 语义、剪枝方式,以及为什么保存祖先链时要复制切片。102 收藏 -
用 Go Doublestar 的 WithNoFollow 控制递归匹配遇到目录符号链接时的遍历边界,并说明固定路径前缀、WithFilesOnly 与 WithFailOnIOErrors 的组合注意事项。102 收藏 -
围绕 Go 1.23 引入的 iter.Pull,说明 next 返回值与 ok 标志如何判断空序列和自然结束,并用 defer stop 覆盖提前退出、限量读取与找到目标值等边界场景。102 收藏 -
Go 1.27 改进 compress/flate 编码速度后,同一输入的压缩字节可能变化,gzip、zip、zlib 和 png 也可能出现派生差异。本文从 CI 快照失败入手,给出区分字节变化与数据损坏的检查方式,并把测试改成稳定的语义断言。101 收藏 -
Golang · Go教程 | 2个月前 | 单元测试 · 错误处理 · Go教程 · go bytes.Buffer Go flag.FlagSet Go SetOutput Go 捕获命令行错误 Go ContinueOnError
使用 Go flag.FlagSet 和 bytes.Buffer 捕获命令行解析错误,讲清 SetOutput、ContinueOnError、ErrHelp 与测试隔离的配合方式。101 收藏 -
Go 的 csv.Reader 默认会根据第一条记录检查后续列数。面对可选尾部字段或多版本 CSV,可把 FieldsPerRecord 设为 -1,再在业务层校验最少列、最大列和扩展字段,兼顾兼容性与数据质量。101 收藏 -
多模块仓库运行 go fix 时,关键是把 module 根目录和包模式分开确认。本文用 go list、go -C、-diff 和 git diff 组成一套只改指定模块的安全流程。101 收藏 -
Go 1.27 提供 goroutineleak profile。本文以 HTTP 服务为例,说明如何采集基线、比较增长差异、定位阻塞通道,并用可取消的退出路径完成修复。101 收藏 -
Go image/draw 的偏移绘制关键在目标矩形 r.Min 与源点 sp 的对齐。本文用最小示例说明 image.Rect、源图像边界、越界裁剪以及 draw.Src 和 draw.Over 的选择。101 收藏 -
Go text/template 默认允许 map 缺键继续执行,容易把数据问题变成空白或。本文用 Template.Option("missingkey=error") 让缺字段在 Execute 阶段返回错误,并对比 default、zero、error 的边界。 101 收藏 -
Go groot可用Get按对象键名读取ROOT数据,但需要判断直方图类型。本文给出TH1D、TH1F、TH1I读取与hbook转换示例,说明分箱权重、错误反馈和目录范围。101 收藏 -
Go maps.Clone 适合把一个 map 配置复制成独立的顶层工作副本,再组合读取、更新和快照导出逻辑。本文从浅复制边界出发,搭建一个小型配置工具,并说明 nil、嵌套切片和并发访问的取舍。101 收藏 -
Go 文件写入成功不代表 Sync 和 Close 一定成功。本文按 Write、Sync、Close 的责任边界拆开说明错误处理顺序,并给出既能延迟关闭又不会覆盖前置错误的写法。101 收藏 -
使用 go/types 分析泛型接口时,NumEmbeddeds 与 EmbeddedType 可以枚举任意嵌入类型;Go 1.24 还提供 EmbeddedTypes 迭代器。本文说明联合约束、Complete 调用和旧 Embedded API 的兼容边界。101 收藏 -
Go JSON v2 默认仍会忽略结构体没有声明的 JSON 成员。本文用 RejectUnknownMembers(true) 开启严格解码,并说明如何通过 SemanticError、ErrUnknownName 和 JSON Pointer 定位未知字段,以及从旧 Decoder 迁移时的兼容边界。101 收藏