-
strconv.ParseInt 的错误不能只看 Error() 字符串。本文用 NumError、errors.Is 和参数边界区分语法错误、数值越界、非法进制与非法位宽,并给出适合接口输入的处理方式。
-
Go http.Cookie.Valid 并不检查 SameSite 枚举。本文拆分标准库字段校验、SameSite 序列化与业务白名单,帮助定位 Cookie 看似被拒绝或属性消失的问题。
-
用 Go reflect.TypeFor 和 Implements 构建类型能力检查工具,按候选名称判断 io.StringWriter 接口支持情况,提供完整代码、退出码与回退思路,并区分类型匹配和实例可用性。
-
Go 升级后 runtime.KeepAlive 相关代码出现差异时,先不要把问题归因于 API 随机变化。本文从对象可达性、终结器、底层资源句柄、数据竞争和 unsafe/cgo 约束五条线定位原因,并给出正确放置 KeepAlive 的最小写法。
-
Go strconv.ParseBool 只接受固定的 1、t、true、0、f、false 等布尔文本,yes/no、on/off 和带空格的输入需要业务层先明确处理。本文从配置、环境变量和表单输入三个场景说明如何检查 error、区分 false 与解析失败,并用适配函数扩展业务别名。
-
Go 的 http.Request.RemoteAddr 只能表示当前 Go 服务看到的 TCP 对端;部署在反向代理后时,客户端地址通常来自代理转发头,但必须先确认代理可信。本文给出可复用的解析函数、IPv6 处理和日志边界。
-
go mod graph 会把模块需求图按一行一条边打印出来,适合查看主模块、传递依赖、版本要求和 replace 后的关系。本文说明输出格式、筛选方法,以及它和 go list -m all、go mod why 的区别。
-
Go 的 os.OpenFile 传入 0666 后,新文件可能显示为 0644,原因通常是 Unix-like 系统的 umask 按位屏蔽了权限。本文结合 O_CREATE、O_TRUNC、默认 ACL 和跨平台边界说明如何排查。
-
Go http.Client 遇到 307/308 重定向时,请求方法和请求体只有在 GetBody 可用时才能安全重放。本文说明 NewRequest 的常见 Reader 边界、自定义 Reader 的补救方式与 CheckRedirect 的控制方法。
-
Go sync.Mutex.TryLock 用 bool 结果表示本次是否立即拿到锁:true 才能进入临界区并负责 Unlock,false 不会建立同步关系。本文结合可跳过任务说明判断、解锁和使用边界。
-
Go 的 math/big.Int 表示整数,调用 Quo 时会按整数除法截断,因此 5 除以 2 得到 2。需要保留小数时,应把输入放进 big.Rat,再用 Quo、RatString 或 FloatString 输出。本文同时说明 QuoRem、IsInt、除数为零和负数边界。
-
testing.T.Setenv 不是通用资源释放器,它通过 Cleanup 在测试结束后恢复环境变量。本文按生命周期、并行限制和直接 os.Setenv 三条线排查“没有释放”的错觉,并给出文件、连接和 goroutine 的独立清理写法。
-
本文用 Go slices.Compact 压缩连续重复元素,说明它怎样保留原切片顺序、原地复用底层数组、处理尾部元素,以及什么时候应改用 CompactFunc。
-
Go netip.Addr.Prev 返回当前 IP 之前的地址,并在地址空间边界返回零值。本文说明如何解析输入、区分 Addr{} 与 0.0.0.0/::、遍历 IPv4/IPv6 地址,以及处理带 zone 的 IPv6 地址。
-
Go 1.24 同时提供 runtime.AddCleanup 和 os.Root。本文用一个可显式关闭的读取器,把文件名限制在指定根目录内,并说明 GC 清理兜底、KeepAlive、Stop 与错误处理边界。