Go语言技术文章
-
Go 文件写入成功不代表 Sync 和 Close 一定成功。本文按 Write、Sync、Close 的责任边界拆开说明错误处理顺序,并给出既能延迟关闭又不会覆盖前置错误的写法。101 收藏 -
使用 go/types 分析泛型接口时,NumEmbeddeds 与 EmbeddedType 可以枚举任意嵌入类型;Go 1.24 还提供 EmbeddedTypes 迭代器。本文说明联合约束、Complete 调用和旧 Embedded API 的兼容边界。101 收藏 -
context cancel 只发出取消信号,不等待协程退出或资源释放。本文结合通道、HTTP 和数据库调用,说明上下文传递、阻塞点响应、对象关闭及退出确认的具体写法。101 收藏 -
Go JSON v2 默认仍会忽略结构体没有声明的 JSON 成员。本文用 RejectUnknownMembers(true) 开启严格解码,并说明如何通过 SemanticError、ErrUnknownName 和 JSON Pointer 定位未知字段,以及从旧 Decoder 迁移时的兼容边界。101 收藏 -
Golang · Go教程 | 2小时前 | 错误处理 · 文件读取 · csv · Go教程 · 数据导入 · csv Go encoding/csv csv.Reader FieldsPerRecord ErrFieldCount
Go csv.Reader 用 FieldsPerRecord 区分固定字段、首行自动定标和允许每行字段数不同三种模式。本文结合 ErrFieldCount、ParseError 与 EOF 的边界,给出固定、自动和宽松读取示例。101 收藏 -
Go 交叉编译在 CGO_ENABLED=1 时失败,通常不是 GOOS 或 GOARCH 写错,而是目标 C 编译器、sysroot 或原生库没有对齐。本文按基线、工具链、依赖和产物四层给出排查方法。100 收藏 -
Go netip.Addr.Compare 不是按字符串比较 IP,而是先按地址位数,再按地址内容排序。本文说明混合 IPv4、IPv6、区域 IPv6 和无效零值的顺序,并给出可直接用于 slices.SortFunc 的写法。100 收藏 -
本文用 Go io.Pipe 连接生产者与消费者,说明同步无缓冲读写、正常关闭、CloseWithError 错误传播、读端提前退出和适用边界。100 收藏 -
Go 的 url.Values.Encode 将查询参数中的空格编码为加号是正常的表单编码语义;本文用最小示例区分空格、字面加号和路径片段,给出解码回路与请求构造边界。100 收藏 -
定位Go slog自定义字段缺失、分组位置不符和派生Logger丢失包装器的问题,给出保留Handler派生语义与context字段的完整示例。100 收藏