Go语言技术文章
-
Ristretto 不按缓存条目数量限制容量,而是通过 MaxCost 和 Set 的 cost 参数管理总成本。本文用统一成本单位为不同大小的对象分配预算,并说明 Wait、异步写入和淘汰边界。289 收藏 -
Go Unix socket 连接失败应先区分路径不存在、权限拒绝和连接拒绝。在 Linux 路径型 socket 中,按客户端身份检查父目录搜索权限、socket 写权限、监听状态与挂载视图,并将最小访问范围固化到服务创建与重启流程。289 收藏 -
Go 服务出现请求卡住时,可以用 runtime/pprof 的 goroutine profile 导出当前所有 goroutine 堆栈。本文对比 HTTP 端点和信号触发两种方式,并说明怎样从等待状态与重复栈定位问题。289 收藏 -
使用 image.NewRGBA 创建可修改图像时,先用 image.Rect 明确坐标范围,再通过 SetRGBA 写入像素;需要批量处理时理解 PixOffset 与 Stride,遇到非零原点和 SubImage 也不容易越界。289 收藏 -
Go defer 写在循环里时,文件通常不会在每轮结束后马上关闭。本文解释 defer 的函数级生命周期,并对比局部函数封装与显式 Close 两种修正方式。289 收藏 -
Go encoding/hex.AppendEncode 会把字节编码为十六进制文本并追加到已有切片。本文从目标切片容量、返回值、空输入和 API 选择几个边界说明如何稳定复用缓冲区。289 收藏 -
Go slice append 后原切片内容被覆盖,通常是因为派生切片与原切片共享底层数组且仍有备用容量。本文用最小示例说明 len、cap、三下标切片与 copy 的选择边界。289 收藏 -
GoLLRB 的自定义对象只需实现 llrb.Item 的 Less 方法,但比较规则必须稳定且可区分。本文用优先级加 ID 的复合键说明插入、等价更新、查询和范围遍历的写法与边界。289 收藏 -
Golang · Go教程 | 1星期前 | 标准库 · 文件读取 · csv · Go教程 · 数据导入 · csv Go Reader encoding/csv FieldsPerRecord 变长记录
Go encoding/csv 默认会按首条记录固定字段数,遇到短记录或长记录时可能返回 ErrFieldCount。本文说明如何在读取前设置 FieldsPerRecord 为负值接受变长记录,并在业务层安全处理缺省字段,同时保留 CSV 语法错误和底层读取错误。289 收藏 -
Go time.AfterFunc 会在延迟到期后异步执行回调。本文说明如何保存返回的 *time.Timer、在回调开始前调用 Stop、判断 Stop 的返回值,并处理取消与回调并发时的资源边界。289 收藏 -
Go 的 JSON 联合字段可以先用 RawMessage 保留 payload,再按 type 选择具体结构体二次解析。本文给出分派结构、错误处理和适用边界。288 收藏 -
Go 1.27 修复了 gofmt 的列对齐判断,少量旧文件重新格式化时可能出现空格变化。本文说明如何固定 Go 工具链、审阅纯格式化 diff,并把检查接入 CI。288 收藏 -
用结算应用与计价库两个模块说明 go work init 和 go work use 的加入方法,区分目录路径与导入路径,并解释递归收集、成员移除、GOWORK 以及独立发布边界。288 收藏 -
Go txtar.Parse 将注释区和文件段拆成 Archive。本文说明标记行、Files 顺序、末尾换行与输入切片引用,并给出保留独立存储的内存解析示例。288 收藏 -
用Gonum quad.Fixed与Legendre规则计算有限区间定积分,结合受限入口说明参数、点数预算、并发回调和误差解释。288 收藏