Go语言技术文章
-
strconv.ParseInt 不返回空数值。本文解释语法错误、越界和零值的区别,用 Go 状态模型保留输入原文,并处理表单空态、错误提示与固定整数范围。200 收藏 -
Go sort.Search 只能在满足单调条件的资源快照中定位第一个可疑索引,不能代替 Close、Unlock 或连接池归还。本文用原创 Go 示例说明如何建立资源边界、处理 len(records) 返回值,并把定位结果交回资源所有者。487 收藏 -
Go sort.Search 返回的不是直接命中的布尔结果,而是有序范围内第一个满足谓词的位置。本文从单调谓词、升降序判断、len(data) 未命中和精确匹配四个边界排查“不生效”。495 收藏 -
Go io.CopyN 复制固定长度时,应同时比较 written 与 n,并用 errors.Is 区分源数据提前结束和其他 I/O 错误。本文给出返回契约、可复用判断函数及固定长度协议的处理边界。138 收藏 -
io.Pipe 是没有内部缓冲的同步内存管道,写端必须等读端消费数据。本文说明怎样安排并发读写、处理 EOF 与 ErrClosedPipe,并用 CloseWithError 把首个业务错误传到另一端。176 收藏 -
Go runtime.SetFinalizer 不生效时,先检查对象是否仍然可达、终结器是否通过闭包重新引用对象,以及是否把 GC 当成了确定的定时器。本文按迁移视角说明显式 Close、KeepAlive 和终结器兜底的正确边界。434 收藏 -
path.Match 不会打开或释放资源,它适合把资源名称筛成可疑集合。本文说明怎样设计 name 和 pattern,区分 matched=false 与 path.ErrBadPattern,再把命中结果交回文件、连接或任务的生命周期检查。426 收藏 -
Go path.Match 返回 false 时,先检查它是否要求整串匹配、通配符是否跨过斜杠、模式是否有语法错误,以及当前数据究竟是 URL 路径还是本地文件路径。472 收藏 -
Go path.Match 中的 ** 不是多级目录通配符,连续两个 * 仍然不能跨过斜杠。本文用最小示例拆开单层与多层路径的差异,并说明如何区分 false、ErrBadPattern 以及逐段匹配方案。304 收藏 -
Go os.File.ReadAt 只负责按偏移读取,不会替你关闭文件。本文从打开点、defer Close、ReadAt 返回值和并发路径四处排查资源未释放。286 收藏 -
Go os.File.ReadAt 的 off 是文件字节偏移,负数不是可读取的位置。本文从错误现象、偏移计算、参数校验和 *os.PathError 判断四层排查,给出安全的 ReadAt 封装,并区分它与 Read、Seek 的位置语义。374 收藏 -
判断 Go os.File.WriteAt 是否完整,不能只看 err。应同时比较 n 与 len(p),区分完整写入、部分写入和异常,并保留底层错误;本文给出可复用的固定偏移写入判断函数。187 收藏 -
Go constant.Bytes 输出整数绝对值的小端字节,因此不保存负号。本文给出符号与幅值分离的编码和还原写法,说明它与补码、文本的区别,以及类型、长度、零值和跨系统转换的边界。423 收藏 -
Go net.ListenConfig.MultipathTCP 和 SetMultipathTCP 怎样控制监听器是否使用 MPTCP,本文说明开关优先级、TCP 回退边界与最小代码写法。228 收藏 -
Go net.ListenConfig 看起来不生效时,先确认监听是否由 lc.Listen 创建,再分别检查 Control 的执行时机、context 的作用范围、HTTP Server 是否复用了监听器,以及 KeepAlive 的连接级边界。本文用几个最小示例整理出一套可复用的排查顺序。223 收藏