-
Go 读取 ZIP 条目大小时,应优先使用 archive/zip.FileHeader.UncompressedSize64。本文说明它与旧的 UncompressedSize 字段有什么关系,为什么 ZIP64 条目必须依赖 64 位字段,以及怎样在打开内容流前把原始大小用于配额、内存和解压边界判断。
-
Redis CLIENT LIST 的 TYPE 参数可以按 normal、master、replica、pubsub 筛选客户端连接。本文解释过滤范围、关键字段、TYPE 与 ID 的组合用法,以及脚本处理空结果和权限问题的边界。
-
Redis ACL SETUSER 限制命令时,不能只写 +get 或 +@read,还要同时配置键模式。本文从 reset 重建最小权限用户,比较单命令、命令分类与 Redis 7.0 选择器,并用 ACL WHOAMI、ACL LOG 和 NOPERM 区分排查方向。
-
Redis LCS 的 LEN 只改变返回形式,不能消除输入长度乘积带来的计算成本。本文比较在线调用、独立实例和应用侧任务,给出输入预算与不可变快照的选择条件。
-
Redis XSETID 设置的是 Stream 的最后生成 ID 元数据,不是已有消息的可编辑 ID。本文区分 entry ID、last-generated-id 和消费组投递位置,说明如何用 XINFO STREAM 排查、用 XADD 创建更正消息,以及用 XGROUP SETID 调整消费起点。
-
Go strings.Count 只统计不重叠匹配。本文用按字节起点推进的实现统计重叠子串,并说明空子串、UTF-8 与输入规模边界。
-
Go strings.Builder 看起来不生效,通常不是 WriteString 失效,而是忘了调用 String、用值接收者复制了非零 Builder、Reset 后又读取空结果,或把 Builder 在多个 goroutine 间共享。本文按现象拆开排查并给出稳妥写法。
-
Go 1.24 引入 os.Root,可把文件读写、创建和 fs.FS 访问限制在指定目录树内。本文用 OpenRoot、相对路径、Root.FS 和错误处理说明越界路径、符号链接、关闭责任及平台边界。
-
strconv.ParseInt 只有 base=0 时按 Go 整数字面量规则允许下划线。本文比较前缀推断、显式进制、ErrSyntax 与 ErrRange,帮助固定配置输入契约。
-
strconv.ParseInt 不返回空数值。本文解释语法错误、越界和零值的区别,用 Go 状态模型保留输入原文,并处理表单空态、错误提示与固定整数范围。
-
Go sort.Search 只能在满足单调条件的资源快照中定位第一个可疑索引,不能代替 Close、Unlock 或连接池归还。本文用原创 Go 示例说明如何建立资源边界、处理 len(records) 返回值,并把定位结果交回资源所有者。
-
Go sort.Search 返回的不是直接命中的布尔结果,而是有序范围内第一个满足谓词的位置。本文从单调谓词、升降序判断、len(data) 未命中和精确匹配四个边界排查“不生效”。
-
Go io.CopyN 复制固定长度时,应同时比较 written 与 n,并用 errors.Is 区分源数据提前结束和其他 I/O 错误。本文给出返回契约、可复用判断函数及固定长度协议的处理边界。
-
io.Pipe 是没有内部缓冲的同步内存管道,写端必须等读端消费数据。本文说明怎样安排并发读写、处理 EOF 与 ErrClosedPipe,并用 CloseWithError 把首个业务错误传到另一端。
-
Go runtime.SetFinalizer 不生效时,先检查对象是否仍然可达、终结器是否通过闭包重新引用对象,以及是否把 GC 当成了确定的定时器。本文按迁移视角说明显式 Close、KeepAlive 和终结器兜底的正确边界。