Go教程技术文章
-
用 google/uuid 的 MarshalBinary 和 UnmarshalBinary 在二进制协议中读写固定 16 字节 UUID,并处理短写、半包、长度错误与文本格式边界。281 收藏 -
Go net/mail.Address.String 会把显示名按邮件地址语法重新格式化。本文解释可打印 ASCII 名称为何使用 quoted-string、非 ASCII 名称为何走 RFC 2047 编码,并给出生成和解析邮件头时的正确用法。280 收藏 -
Go net/url.URL 的 Opaque 用于表示 scheme:opaque 形式的不透明数据。本文从字段关系、String 序列化和 RequestURI 输出说明它与 Host、Path 的边界。280 收藏 -
Go 的 testing.T.Setenv 可以在单个测试生命周期内设置环境变量,并在测试结束时自动恢复。本文说明最小写法、子测试继承、并行限制和可替代的依赖注入方案。280 收藏 -
用Go fs.Sub把资源子目录作为组件的新根,通过完整内存文件示例解释相对路径、目录列举、读取错误以及文件访问隔离的边界。280 收藏 -
用 http.Transport.Clone 从基础 Transport 创建客户端专属副本,说明导出字段复制、请求前配置、空闲连接关闭和并发修改边界,避免多个 http.Client 共享配置时互相影响。280 收藏 -
Go testing.T.Errorf 等价于记录格式化错误日志后调用 Fail:当前测试会被标记为失败,但函数仍会继续执行。本文用表格测试说明如何保留多个失败项,并对比 Fatalf 的立即停止边界、前置条件判断和并发调用注意事项。280 收藏 -
Go http.Request.ParseForm 会把 URL 查询参数写入 r.Form,并在符合条件的 POST、PUT、PATCH 表单请求中同时填充 r.PostForm 与 r.Form。本文说明两个集合的来源、同名键优先级、Content-Type 边界、重复值读取和 FormValue 的错误处理差异。280 收藏 -
fsnotify的一次保存可能产生多次通知。本文用单文件监听示例说明父目录过滤、静默窗口和单循环定时器,给出完整Go代码,并解释持续写入、慢处理、读取失败和通知丢失的限制。280 收藏 -
Go httptest.ResponseRecorder.Result 返回处理器执行完成后的 http.Response 快照。本文比较记录器字段和最终响应的差异,并给出状态码、响应头、响应体的稳定读取方式。280 收藏 -
Go net/mail.ParseAddress 将单个邮件地址解析为显示名和邮箱字段。通过原创联系人示例比较手动切分与标准库解析,说明引号逗号、错误处理和格式化文本的区别。279 收藏 -
Golang · Go教程 | 3星期前 | go · 文件读取 · Go archive/zip Reader.RegisterDecompressor 自定义压缩方法 ZIP 解压 Go 文件读取
用 archive/zip.Reader.RegisterDecompressor 为指定 ZIP 压缩方法接入项目解压器,说明方法编号、Reader 级注册、条目读取和 Close 生命周期的边界。279 收藏 -
Go go/format.Node 可以把 ast.File、声明、语句或表达式节点写成 gofmt 风格的 Go 源码。本文从 FileSet 和 parser 开始,说明完整文件与局部节点的差异、注释处理以及 AST 或 Writer 出错时的处理方式。279 收藏 -
Go 的 unicode/utf8.RuneStart 用来判断一个字节是否可能是 UTF-8 符文的首字节。本文从 ASCII、中文多字节编码和 10xxxxxx 后续字节切入,说明它的判断边界,以及为什么还要配合 DecodeRune 或 Valid。279 收藏 -
Go callgraph.DeleteSyntheticNodes 可以从调用图中移除不对应源语法的合成函数节点,并重建剩余节点之间的可达关系。本文说明它的调用时机、root 与包初始化函数的保留边界,以及不可达节点为何需要另行处理。279 收藏