Go语言技术文章
-
解释 filepath.ToSlash 如何把本地路径分隔符转换成斜杠,区分 Windows 与 Unix 行为,并给出 URL、归档条目和字符串比较中的使用边界。262 收藏 -
Go 中想把临时文件放到指定目录,直接把目录路径传给 os.CreateTemp 的第一个参数即可。本文说明 pattern、Name、Close、Remove 的配合,并补充需要目录级隔离时的 MkdirTemp 写法。383 收藏 -
Go 的 os.File.Sync 不是每次 Write 后都要调用。本文从 Write、Sync、Close 的语义差异出发,说明配置、检查点、缓存和临时文件的取舍,并给出错误处理与调用边界。264 收藏 -
解释 os.ReadFile 的整文件加载边界,并给出基于 os.File、io.Reader 和固定缓冲的流式改法,帮助大文件顺序处理降低峰值内存。165 收藏 -
通过一个可控的流复制小项目说明 io.TeeReader 的同步写入语义、写端错误如何从 Read 返回,以及处理 n 和 err、错误包装与适用边界的正确方式。210 收藏 -
Go 的 io.ByteScanner 把 ReadByte 和 UnreadByte 组合成了一个很窄但实用的回退接口。本文用 bufio.Reader 拆出 token,遇到分隔符时只退回一个字节交给下一个解析阶段,并说明 Read、ReadRune、连续 UnreadByte 等调用为什么不满足这个契约。466 收藏 -
io.CopyN 的关键不是只看返回错误,而是同时判断 written 和 err。本文区分源数据提前结束的 EOF、固定长度读取中的 ErrUnexpectedEOF,以及目标 Writer 的短写和其它错误,给出可直接放进 Go 工程的判断方式。121 收藏 -
用同一枚 maphash.Seed 为进程内多个独立 Hash 建立一致的哈希规则,并说明 Reset、并发共享和跨进程持久化的边界。236 收藏 -
Go 的 hash/crc32 提供 IEEE、Castagnoli 等 CRC-32 多项式。本文从协议兼容、内部数据完整性和流式计算三个角度说明如何选表,并给出可复用的 Checksum 与 New 示例。376 收藏 -
从实际输入场景说明 fmt.Fscan 如何按空白切分字段、为什么 string 不能直接保留空格,以及需要整行读取时该如何选择 Fscanln、bufio.Scanner 和 Reader。110 收藏 -
encoding/xml 没有一个直接返回未知标签原始字节的接口。本文用 Token 按深度收集未知元素子树,再说明 RawToken 在命名空间前缀和起止标签校验上的区别。498 收藏 -
filepath.Match 不是普通字符串匹配:星号和问号默认不能跨越路径分隔符,模式还必须覆盖完整名称。本文结合文件筛选自动化,解释分隔符、转义、跨平台写法和 ErrBadPattern 的处理。195 收藏 -
讲清 Go encoding/base64 NewDecoder 的流式读取、正常 EOF、尾部不完整输入与底层 Reader 错误如何区分,并给出可直接改造的判断代码。339 收藏 -
说明 Go encoding/json.Decoder 没有公开的单次嵌套深度参数,拆开字节上限、业务深度扫描和标准库固定内部保护,给出受控读取与失败处理的完整写法。461 收藏 -
开启 encoding/csv.Reader 的 ReuseRecord 后,Read 可能复用上一条记录的切片。本文解释下一行为什么会改写当前字段,以及何时复制记录、ReadAll 和并发读取有哪些边界。396 收藏