Go教程技术文章
-
Golang · Go教程 | 2天前 | 标准库 · 错误处理 · IO · Go教程 · Go eof io.Pipe CloseWithError PipeReader PipeWriter.Close
Go io.Pipe 写端正常 Close 后,读端读完剩余数据会收到 io.EOF;如果生产过程失败,应使用 CloseWithError 传播真实错误。本文对比三种关闭入口,给出带错误处理的读取循环和关闭边界。321 收藏 -
Go bufio.Scanner 默认按行切分,空行会作为长度为零的 token 返回;循环结束后要检查 Err 区分正常 EOF、底层读取错误和 token 过长。本文给出空行策略、Buffer 配置和按行读取代码的迁移清单。329 收藏 -
Go 的 bufio.Scanner 默认 token 缓冲有限,读取超长日志行时可能提前停止。本文用 Scanner.Buffer 调整初始缓冲和最大上限,说明调用时机、错误处理,以及何时应改用 bufio.Reader。365 收藏 -
保存 ReaderAt、起始偏移和长度,为每次尝试重建 SectionReader。结合完整示例说明游标复位、读取不足、目标重试、源版本与 HTTP 响应边界。178 收藏 -
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 收藏 -
GoLLRB 的 DeleteMin 会删除并返回有序树中的最小元素,空树返回 nil。本文对比 Min 与 DeleteMin,演示 llrb.Int、类型断言和连续消费时的停止条件。483 收藏 -
GoLLRB 的自定义对象只需实现 llrb.Item 的 Less 方法,但比较规则必须稳定且可区分。本文用优先级加 ID 的复合键说明插入、等价更新、查询和范围遍历的写法与边界。289 收藏