Go语言技术文章
-
Golang · Go问答 | 3星期前 | CGO · 垃圾回收 · Go问答 · Go CGO runtime.KeepAlive runtime/cgo.Handle runtime.Pinner Go指针回收
Go cgo 场景里,runtime.KeepAlive 只能把 Go 对象的可达性延长到指定位置,不能允许 C 在调用返回后继续保存普通 Go 指针。本文按同步调用、异步保存和 Go 值传递三个边界,说明 KeepAlive、Pinner、cgo.Handle 与 C 内存的选择。245 收藏 -
Go work 用 go.work 把多个独立 Go module 放进同一 workspace,让本地联调可以直接读取模块改动。本文按迁移变更单的方式说明目录、use、模式切换、测试与交付边界。245 收藏 -
Go 拼接 API 根地址和资源路径时,不要靠字符串加斜杠。url.JoinPath 会统一路径分隔符并清理 .、..;如果某个变量本身是一个含斜杠的数据段,再先用 url.PathEscape。245 收藏 -
Go 1.27 调整了 go tool trace 的 -http 参数行为:只写端口时页面限制在 localhost。本文对比常见监听地址,说明本机查看与远程访问该怎么选。245 收藏 -
go tool trace 默认通过本地 HTTP 服务打开 trace viewer。本文解释 localhost:0、:6060、127.0.0.1:6060 和 0.0.0.0:6060 的差别,给出限制在本机回环接口的命令写法。245 收藏 -
Go filepath.IsLocal 适合在拼接用户路径前筛出绝对路径、空路径和父目录路径。本文用原创 Go 示例说明它与 filepath.Clean、filepath.Join 的边界,并解释符号链接、存在性和权限问题为什么仍需额外处理。245 收藏 -
io.LimitReader 在达到上限后也会返回 EOF,因此单看 EOF 不能判断底层数据是否自然结束。本文解释 LimitedReader.N 的含义,并用 limit+1 的受控读取方式识别输入是否超限。245 收藏 -
Go Avro schema 中的 default 主要服务于读取旧数据时的 schema resolution,并不是编码器的可选字段开关。本文结合 hamba/avro/v2 说明 writer schema、reader schema、union 默认值和新增字段的兼容边界。245 收藏 -
Go csv.Reader 遇到列数不一致时,把 FieldsPerRecord 设为 -1 即可保留每条解析后的 []string;文章同时说明严格模式、ErrFieldCount、ParseError 和 ReuseRecord 的处理边界。245 收藏 -
Go generate 可以通过 package 路径、同目录 Go 文件列表以及 -run、-skip 精确缩小生成范围。本文结合注释触发、执行顺序和失败边界,说明如何只对指定包运行代码生成指令。245 收藏 -
Go image.Decode 得到空结果时,优先检查错误、格式注册和 Reader 读取位置。本文用最小示例说明空输入、未注册解码器、预读后未回退和 DecodeConfig 尺寸边界的处理方式。245 收藏 -
Go encoding/json 解码到 map[string]any 时,JSON 数字默认映射为 float64。本文用最小复现解释原因,并给出结构体与 Decoder.UseNumber 两种保留数字语义的处理方式。245 收藏 -
Golang · Go教程 | 2天前 | 标准库 · 错误处理 · Go教程 · Go FLUSH bufio.Writer close io.WriteCloser encoding/ascii85 ascii85.NewEncoder
Go ascii85.NewEncoder 按 4 字节块编码,最后不足一块的数据要靠 Close 收尾;如果外层再包 bufio.Writer,应先 Close 编码器,再 Flush 外层缓冲,两个错误都不能忽略。245 收藏 -
Go 的 archive/tar 读取截断归档时,正常结束与数据不完整不是同一个结果。本文用 Reader.Next、Header.Size、io.Copy 和 io.ErrUnexpectedEOF 说明如何定位截断位置,并在流式解包中安全停止。244 收藏 -
Go context 取消后任务仍在运行,通常不是 cancel 失效,而是 goroutine 没有监听 Done、阻塞调用没有接收 context,或收尾阶段被结果通道卡住。本文用循环、数据库调用和排查清单拆开这条边界。244 收藏