Go教程技术文章
-
用 Go strings.CutPrefix 读取并移除字符串前缀,掌握 after、found 两个返回值,以及未匹配、空前缀、大小写和 Unicode 等边界。177 收藏 -
Go bytes.Reader 同时支持顺序读取、绝对偏移读取和定位。本文区分 Len、Size、ReadAt、Seek 的职责,并用 io.SectionReader 固定下游可见的缓冲区间。465 收藏 -
解释 Go bytes.Reader 中 Len、Size、Read、ReadAt、ReadRune、Seek 和 Reset 的关系,帮助定位读取后长度变化与游标位置不一致的问题。184 收藏 -
Go 的 bytes.Reader 适合从 []byte 创建只读游标。本文用一个可运行示例说明 Read、ReadAt、Seek、Len、Size 和 Reset 的区别,帮助你按顺序读取或按偏移取字节。125 收藏 -
io.SectionReader 只能读取创建时指定的逻辑窗口。本文解释 [off, off+n) 边界、Read 与 ReadAt 的 EOF 表现,以及跨范围读取时如何选择扩大窗口或访问底层 ReaderAt。223 收藏 -
讲清 Go io.SectionReader 的逻辑片段长度与底层文件实际长度的区别,结合 Size、Read、累计字节数和 io.EOF 判断短片段、空片段与完整读取。164 收藏 -
用 Go 的 io.SectionReader 从 ReaderAt 数据源中限制固定起点和长度,说明 Read、ReadAt、Seek、Size、Outer 的偏移口径、EOF 边界以及字节切片的常见坑。178 收藏 -
用 Go os.File.ReadAt 按偏移并发读取文件,讲清分片边界、并发限制、短读与 EOF 处理,以及它和 Read、Seek 的取舍。178 收藏 -
os.File.ReadAt 返回 io.EOF 不一定代表本次没有数据。关键要先看 n 与 len(buf) 的关系,再决定处理有效字节、接受文件尾部或返回 io.ErrUnexpectedEOF。501 收藏 -
本文用固定长度文件记录和分片场景说明 Go os.File.ReadAt 的偏移参数、短读与 EOF 处理,并给出字节转换和 SectionReader 的使用边界。161 收藏 -
Go fs.Sub 可以把指定目录映射为新的 fs.FS 资源根,让调用方使用简短相对路径;本文说明 ValidPath、SubFS 转发、错误路径以及它与目录安全隔离的边界。161 收藏 -
Go fs.Sub 出错时,先区分路径格式错误和子目录访问错误:用 fs.ValidPath 检查 dir,再用 fs.Stat 确认目标存在且是目录,并通过 PathError 与 errors.Is 定位真正失败的操作。276 收藏 -
filepath.WalkDir 会发现符号链接,但默认不会沿着链接目标递归。本文用 DirEntry 判断链接类型,并说明需要跟随时如何解析目标、限制范围和避免循环扫描。359 收藏 -
filepath.WalkDir 的错误不只来自文件本身。本文按根路径、目录读取和子项回调三类入口,讲清 d 为 nil、SkipDir 与 SkipAll 的处理边界。460 收藏 -
filepath.WalkDir 的回调参数是 fs.DirEntry,不是旧版 Walk 的 fs.FileInfo。本文说明 Type、IsDir 和 Info 的区别,演示如何判断目录、普通文件、特殊文件与符号链接,并处理 Info 失败和遍历错误。401 收藏