Go教程技术文章
-
Golang · Go教程 | 2星期前 | 文件处理 · Go教程 · Go archive/tar Go tar归档头 archive/tar Reader.Next Go读取tar文件 Go解包元数据
用 archive/tar.Reader 的 Next 逐条读取 tar 归档头,解释 Header 元数据、正文读取、目录跳过以及 EOF 和不安全路径处理。225 收藏 -
Go archive/zip 的文件名由 Create 参数或 FileHeader.Name 决定。本文用原创示例说明如何生成稳定的相对路径,并处理目录、重复名、分隔符和中文名编码边界。330 收藏 -
Go archive/zip 报错不一定是整个 ZIP 都坏了。本文按中央目录、本地文件头和内容校验三个边界排查 ErrFormat、ErrChecksum,并给出生成端 Close 检查清单。303 收藏 -
Go 的 archive/tar 通过同一个 Writer 顺序写入多个条目。本文说明 Header.Size、WriteHeader、Write 和 Close 的配合关系,并给出用 Reader.Next 核对归档边界的原创示例。376 收藏 -
Go 的 Example 函数如何放进 _test.go、如何用命名约定关联文档对象,以及 Output 和 Unordered output 注释何时会让示例参与测试。170 收藏 -
Go generate 的关键不是把命令写得更长,而是把指令放进正确的源码包,让相对路径、生成器和输出文件拥有稳定的目录关系。321 收藏 -
用互斥的 go:build 约束隔离 Go 的生产实现与测试替身,配合 go test -tags 和 go list 检查文件选择,避免测试代码误进入生产构建。423 收藏 -
Go GODEBUG 并不是简单的“一次运行开关”。本文区分临时环境变量、shell 继承、go.mod 的 godebug、//go:debug 和进程启动后的修改边界,帮助你判断配置到底影响谁。199 收藏 -
Go 的 trace.Stop 太晚会让无关运行阶段混入追踪,也可能因 defer 顺序错误在文件关闭后仍尝试写入。本文用采集窗口和资源生命周期解释正确写法。440 收藏 -
用 Go runtime/trace 采集一次请求的短时执行轨迹,结合 task、region 和 go tool trace 观察 goroutine 调度、阻塞、系统调用与 GC 事件。176 收藏 -
Go module graph pruning 不是简单删除 go.mod 条目。本文从 go 1.17+ 的模块图规则出发,说明如何用 go mod graph、go mod why -m 和 go list -m all 定位仍被下载的依赖。168 收藏 -
Go vendor 模式下,不能只看 go.mod 猜依赖版本。本文用 vendor/modules.txt、go list -mod=vendor 和 go version -m 建立从源码目录到最终二进制的核对路径。276 收藏 -
用 go.work 在本地联调多个 Go 模块,理解 use、GOWORK=off 与 go work sync 的职责,避免把临时 replace 带进正式发布。480 收藏 -
Go 的 net.Dialer 通过 LocalAddr 指定出站连接的本地 IP 和端口,通过 Timeout 限制拨号等待;本文说明 tcp 地址类型匹配、context 截止时间、连接读写 deadline 以及常见绑定失败的排查方法。295 收藏 -
通过 net.Resolver 的 Dial 为单次 Go DNS 查询指定服务器 IP,配合 PreferGo、context 超时和 LookupHost 处理 UDP/TCP、取消及错误边界。100 收藏