Go教程技术文章
-
Go bufio.Writer 会先缓存写入数据,尾部缺失时应按 Write 返回值、Buffered、Flush 错误和底层持久化语义逐层排查。本文给出文件输出、defer 收尾和可注入错误 Writer 的原创示例。485 收藏 -
Go structs.HostLayout 用于标记结构体采用主机内存布局,通常遵循主机 C ABI。本文说明标记位置、unsafe 布局检查方法,以及嵌套结构体、packed struct、位域和 cgo 互操作的边界。266 收藏 -
Go bufio.Scanner 默认按行切分,但日志块、消息片段或自定义文本记录往往需要自己的分隔符。本文从 SplitFunc 的返回值契约出发,给出处理半条记录、EOF、空记录、超长 token 和扫描错误的完整写法。135 收藏 -
hash/maphash 没有 MakeHash,正确入口是 MakeSeed。本文区分 Seed、Hash 和 SetSeed,说明 String、Bytes 的选择、并发复用边界,以及为什么 Seed 不能跨进程持久化或用于密码学哈希。425 收藏 -
Go 的 go tool covdata merge 可以把多个 GOCOVERDIR 目录中的原生覆盖率数据合并到一个输出目录。本文说明输入目录、-i/-o 参数、合并后报告生成,以及元数据不一致时的排查边界。209 收藏 -
Go net/url.JoinPath 会合并并清理 URL 路径,但路径段应先用 PathEscape 处理。本文说明特殊字符、斜杠、点段、查询参数和 ResolveReference 的边界。400 收藏 -
Go encoding/binary.AppendByteOrder 提供了把整数追加到已有字节切片的接口。本文用 BigEndian、LittleEndian 和 NativeEndian 对比说明字段追加、缓冲区复用与跨平台协议的选择边界。393 收藏 -
处理代理地址、连接地址或地址键时,IPv4 与 IPv4-mapped IPv6 可能代表同一主机。本文用 net/netip.Addr.Unmap 说明如何识别映射地址、统一表示,并避开 Is4、BitLen 和 As4 的边界误用。219 收藏 -
Golang · Go教程 | 1星期前 | 标准库 · csv · Go教程 · 数据导入 · 制表符 Go ReadAll read encoding/csv CSV读取 TSV Reader.Comma
Go encoding/csv.Reader 默认把逗号当作字段分隔符;读取 TSV 或制表符文本时,应在第一次 Read 或 ReadAll 前把 Comma 设置为 '\t'。本文说明有效分隔符约束、引号与空白边界,以及 Read 和 ReadAll 的错误处理方式。365 收藏 -
Golang · Go教程 | 1星期前 | 标准库 · 文件读取 · csv · Go教程 · 数据导入 · csv Go Reader encoding/csv FieldsPerRecord 变长记录
Go encoding/csv 默认会按首条记录固定字段数,遇到短记录或长记录时可能返回 ErrFieldCount。本文说明如何在读取前设置 FieldsPerRecord 为负值接受变长记录,并在业务层安全处理缺省字段,同时保留 CSV 语法错误和底层读取错误。289 收藏 -
Go 错误被 fmt.Errorf 包装后,直接类型断言可能失效。本文用自定义错误演示 errors.As 如何沿错误树取出目标类型,并区分 As、Is 与 errors.Join 的适用边界。261 收藏 -
Go 错误经过多层 %w 包装后,不能再依赖 == 或完整错误文本判断原因。本文用 errors.Is 处理多层 Unwrap,区分 errors.Unwrap 的单层职责,并说明错误分类与上下文包装的边界。204 收藏 -
Go net/url 解析 https://example.com/items? 时,RawQuery 为空并不代表原始 URL 没有问号。本文用 URL.ForceQuery 区分没有查询、空查询和带参数查询,给出解析、修改和输出请求 URI 的最小配方。231 收藏 -
Go HTTP 服务端用 MaxBytesReader 限制请求体后,应该通过 errors.As 区分正常读取、超过上限和其它读取错误。本文给出带 Close 的 handler 写法,并说明大小限制与业务校验的边界。318 收藏 -
Go os.Chtimes 接收的是路径,但遇到符号链接时会沿路径找到目标文件并修改访问时间和修改时间。本文用 Stat、Lstat 和零值时间参数拆开观察层级,说明为什么链接自身的 ModTime 不会随调用变化。215 收藏