Go教程技术文章
-
独立运行 Go 测试二进制时,用 go tool test2json 配合 -test.v=test2json 输出逐行 JSON 事件。说明参数归属、流式解码、测试失败识别及原始日志保存方式。494 收藏 -
Go 基准测试中的 b.Cleanup 会在基准函数和子基准完成、计时停止后执行,清理回调本身不会计入 ns/op,但回调登记动作若放进循环仍会计时。本文对比 b.Loop、b.N、defer 与手动 Close 的资源边界。272 收藏 -
Golang · Go教程 | 6分钟前 | 错误处理 · go · Go encoding/base64 CorruptInputError io.ErrUnexpectedEOF NewDecoder
围绕 Go base64.NewDecoder 的流式读取,区分正常 EOF、残缺量子导致的 io.ErrUnexpectedEOF 与非法字符导致的 CorruptInputError,并给出先消费 n 再处理 err 的代码模式。256 收藏 -
Go xml.Decoder 返回解析错误时,可以用 InputOffset 取得当前输入流的字节偏移,再从原始 XML 截取附近窗口。本文说明偏移边界、Token 循环写法、字节切片安全处理和 Decode 场景下的注意点。474 收藏 -
Go 测试中的多个 t.Cleanup 按后注册先调用执行。结合临时目录、文件句柄与并行子测试,说明怎样按依赖登记清理、选择父子测试作用域,以及与 defer 的区别。487 收藏 -
Golang · Go教程 | 11分钟前 | 标准库 · 错误处理 · csv · Go教程 · Go CSV导入 encoding/csv csv.Reader FieldsPerRecord ErrFieldCount
Go csv.Reader 用 FieldsPerRecord=-1 可以接收列数不固定的记录;如果业务仍需识别异常列宽,则应保存每次 Read 返回的 record,并在固定列宽模式下同时保留 ErrFieldCount。本文区分字段数错误、部分解析错误和 io.EOF,给出可审计的导入循环。331 收藏 -
Go json.Decoder 解码到 any 时,JSON 数字默认会落到 float64。本文说明如何用 UseNumber 保留为 json.Number,再按业务边界解析成 int64 或 float64,避免大整数提前丢失精度。253 收藏 -
解释 embed.FS 与 io/fs 的逻辑路径规则,说明 Windows 也必须使用斜杠,并给出用 path.Join、ReadDir、Open 和 ReadFile 读取嵌入资源的跨平台写法。438 收藏 -
Go archive/zip 的 File.Open 返回解压后的条目内容并负责校验,File.OpenRaw 则返回 ZIP 内保存的原始压缩字节。本文比较两者的资源、错误和用途边界,演示如何安全导出原始数据。399 收藏 -
通过每次 Read 前后的 InputOffset 记录 CSV 输入消费范围,结合错误与输入版本回看原始字节,说明预读、多行字段、字节变换和失败后续传的边界。312 收藏 -
Go archive/tar 读取软链接时,Header.Name 是归档中的链接名,Header.Linkname 才是目标路径;TypeSymlink 没有普通文件数据体,Reader.Read 返回 EOF 不代表目标文件读取失败。167 收藏 -
Go archive/tar 默认可能把 ModTime 按秒写入;指定 FormatPAX 后,归档可以保留文件修改时间的亚秒部分。本文给出写入、读取核对和格式边界。188 收藏 -
Golang · Go教程 | 24分钟前 | 标准库 · 错误处理 · go · IO · Go 流式处理 io.Reader io.Pipe CloseWithError PipeWriter PipeReader
Go io.Pipe 不会自动把生产端的业务错误变成读取端错误。本文用 CloseWithError 传递原始 error,说明读取端如何先处理已有字节、再区分生产错误与 EOF,并整理成功、失败和提前关闭的关闭约定。213 收藏 -
解释 OffsetWriter 的起点映射、Write 与 WriteAt 游标差异、Seek 支持范围,给出局部写入示例,并明确它不提供写入长度上限及底层关闭责任。129 收藏 -
用 Go flag.TextVar 和 encoding.TextUnmarshaler 把命令行文本转换为自定义配置类型,演示 duration 解析、范围校验、默认值和错误处理。349 收藏