Go语言技术文章
-
Go io.SectionReader 把底层 ReaderAt 限定为一个有边界的读取视图。本文说明如何结合 SeekStart、SeekCurrent、SeekEnd 在分片内定位,并比较顺序读取与 ReadAt 的适用场景。362 收藏 -
用 Go io.SectionReader 为同一个 ReaderAt 建立独立分片,解释 Read、ReadAt、EOF、短读和并发安全边界,给出可复用的分片任务写法与选型决策。154 收藏 -
说明 O_TRUNC 打开时截断与 Close 释放句柄的不同职责,给出保留写入、关闭错误的覆盖写函数,并解释直接覆盖、持久化与完整替换的取舍。343 收藏 -
Go os.OpenFile 的 perm 是创建文件时的请求权限,最终结果还会受到系统 umask 影响;已有文件则不会因为再次传入 perm 自动改权限。本文用创建、覆盖和显式 Chmod 三个场景说明正确写法。148 收藏 -
Go os.OpenFile 的 O_SYNC 会影响写入的同步语义,但它不是事务或跨文件原子提交。本文用 O_APPEND、O_CREATE、f.Sync 和 Close 对比写入配置、性能成本与资源错误处理边界。443 收藏 -
Go os.ReadDir(name) 会一次返回目录项;面对大目录时,可以打开目录并用 File.ReadDir(n) 分批读取。本文说明批量大小、DirEntry、io.EOF、Info 调用和 Close 错误的处理边界。474 收藏 -
用 os.ReadDir 构建单层目录索引,以 fs.ValidPath 约束相对名称,区分本机路径与 io/fs 名称,并说明部分读取、目录分类和平台转换的处理边界。375 收藏 -
用 Go os.ReadDir 按文件名获得稳定目录顺序,并通过 DirEntry.Type 跳过符号链接;同时解释 File.ReadDir 的目录顺序和分批读取边界。411 收藏 -
Go fastjson 在重复解析JSON时可以复用 Parser,减少反复创建解析器和临时对象的分配压力。本文说明 Parser、Value、ParserPool 的生命周期边界,并给出可直接改造的代码结构。385 收藏 -
rtreego 最近邻比较查询点到 Bounds 矩形的最短欧氏距离。通过两个矩形说明它与中心距离、真实几何距离的区别,以及候选重排和返回值的局限。250 收藏 -
对比Sonyflake整数、8字节编码与UUID的16字节及标准文本表示,给出Go往返转换函数,并说明数据库驱动、JSON数值精度和不同标识类型的接入边界。277 收藏 -
Go beep 的采样率转换用于让源流适配播放设备,修改播放速度则通过 ResampleRatio 或 SetRatio 改变流的消费密度。本文对比 Format、Resample、ResampleRatio 和 SetRatio 的职责与选择边界。482 收藏 -
llrb 依赖 Less 定义的稳定排序关系。通过值快照任务索引说明原地改键为何影响检索,以及旧键删除、新键插入、辅助表和并发更新的责任。288 收藏 -
GoLLRB 的遍历方法不是简单地把升序改成降序:AscendGreaterOrEqual 包含 pivot,AscendLessThan 排除 pivot,AscendRange 使用大于等于下界且小于上界的闭开区间,DescendLessOrEqual 则按降序包含 pivot。本文用一组可复用的判断表说明边界和回调停止语义。383 收藏 -
Go llrb 的 ReplaceOrInsert 依据 Item.Less 的排序等价判断是否替换,不比较结构体整体值或指针地址。本文用业务键示例说明返回值、Less 契约与可变字段边界。412 收藏