-
Go archive/tar 读取软链接时,Header.Name 是归档中的链接名,Header.Linkname 才是目标路径;TypeSymlink 没有普通文件数据体,Reader.Read 返回 EOF 不代表目标文件读取失败。
-
Go testing/synctest 可以在隔离测试气泡内使用虚拟时钟,让定时任务测试不必等待真实秒数。本文用 time.AfterFunc 示例比较真实时间、注入时钟和 synctest,并说明 Test、Wait、Sleep 的边界。
-
Go slices.Collect 可以把 iter.Seq 产出的值收集成新的切片,适合后续索引、排序或重复遍历。本文用可复用的偶数迭代器说明 Go 1.23 及以上版本的最小用法,并解释 nil 空结果、引用型元素的浅拷贝以及何时应继续流式消费。
-
本文说明 Go crypto/subtle.ConstantTimeByteEq 的 uint8 参数、1/0 返回值、最小封装,以及它与 ConstantTimeEq 和 ConstantTimeCompare 的适用边界。
-
用%w保留Go crypto/aes初始化错误,通过errors.As识别KeySizeError,区分调用阶段,并设计不泄露密钥的内部诊断和对外提示。
-
用 Go 的 image.Rectangle.Intersect 计算两个图片边界的共同区域,理解半开区间、空矩形、边界相接和 SubImage 裁剪坐标的处理方式。
-
Go io.LimitReader 会把底层 Reader 的非 EOF 错误原样传回,但达到读取上限时返回的是 EOF,不能直接当作“底层读完”。本文用 io.ReadAll、io.LimitedReader 和 %w 包装讲清错误保留、截断判断与流式读取边界。
-
Go 1.23 引入的 maps.Keys 返回键迭代器,配合 slices.Sorted 可以在需要稳定顺序时一次收集并排序,本文用批处理示例说明空 map、无序遍历与高频复用边界。
-
Go crypto/aes.NewCipher 只接受 16、24 或 32 字节密钥,分别对应 AES-128、AES-192 和 AES-256。本文说明如何提前判断长度、用 KeySizeError 读取错误,并区分密钥长度与 AES 分组大小。
-
filepath.WalkDir 不提供 Root 参数。本文说明怎样将严格根目录遍历迁移到 fs.WalkDir(root.FS()),给出有限读取、文件关闭和摘要计算示例,并解释平台及资源边界。
-
Go HTTP/1 服务端默认会在写响应前处理未读请求体。本文用 http.ResponseController.EnableFullDuplex 说明正确调用时机、分块读写、Flush、HTTP/2 差异和 ErrNotSupported 边界。
-
Go regexp.Compile 会在解析阶段返回无效正则的错误。本文用一个规则加载器说明如何提前编译、保留错误上下文,并区分 Compile、MustCompile 与后续匹配校验。
-
unique.Make 的第一道边界由 comparable 类型约束决定,第二道边界要由业务代码自己定义。本文用高并发标签去重场景拆开编译期约束、运行时校验、相等语义和并发使用方式,给出可直接复用的规范化入口。
-
Go os/exec.Cmd.ExtraFiles 可以把父进程已打开的文件交给子进程。本文用一个父子进程示例说明 ExtraFiles[0] 如何对应文件描述符 3、启动前后的关闭边界,以及 Windows 不适用时该怎么判断。
-
os.DirFS 的根目录参数不能是空字符串,文件读取还要区分非法路径、文件不存在和权限错误。本文用 io/fs 的路径约束、errors.Is 和资源关闭写出清晰的异常分支,并提醒 DirFS 不等于符号链接隔离。