Go语言技术文章
-
io.CopyBuffer 只有在实际需要缓冲的复制路径中才会使用传入的 []byte。本文说明 nil、零长度、WriterTo/ReaderFrom 快速路径为何会改变结果,并给出串行批处理复用缓冲区、定位分配来源和处理并发边界的写法。102 收藏 -
围绕 io.CopyBuffer 复制大文件时的额外分配与空结果现象,拆解 nil 缓冲区、WriterTo/ReaderFrom 快速路径、目标扩容、written 与 err 的判断,以及并发复用缓冲区的生命周期边界。291 收藏 -
io.CopyBuffer只复用通用复制路径的暂存区。本文解释专用方法分派、额外分配来源,以及外部缓冲区的所有权、文件关闭与错误处理。186 收藏 -
本文围绕 bufio.Reader Discard 的返回值、Buffered 边界和批处理复用策略,说明读取失败后怎样只清理确认过的残留数据,并解释 Discard、Reset 与按需复制的适用场景。248 收藏 -
读取失败后,bufio.Reader 里的数据不会因为返回错误就自动消失。本文说明 Discard 的返回值、有限丢弃策略和协议边界,帮助你避免清空过多数据或误删下一条消息。273 收藏 -
bufio.Writer.Buffered 返回的是缓冲层当前暂存的字节数,不是文件长度或已落盘数据。本文用最小示例说明 Flush 前后的变化,并给出按阈值批量刷新与处理尾部数据的写法。414 收藏 -
debug/elf.SectionByType 返回 nil 不等于 ELF 文件解析失败。本文区分 elf.Open 的错误、目标节不存在和节内容读取失败,并说明剥离符号的文件何时应回退到 SHT_DYNSYM。468 收藏 -
strconv.ParseInt 的 base=0 会按 0b、0o、0x 等前缀推断进制,而固定 base 时输入契约不同。本文说明 base、bitSize 与 NumError 的关系,帮助你区分非法数字和范围溢出。400 收藏 -
Go 的 regexp.Regexp.LiteralPrefix 可以提取每个匹配必经的固定前缀。本文区分非锚定与 ^ 锚定查询,给出 Contains、HasPrefix 与 MatchString 的安全组合,并说明空前缀、完整字面量和性能收益边界。254 收藏 -
解释 text/template.Template.Clone 如何复制已解析模板的关联命名空间,以及为什么 Clone 后可以用 Funcs 替换副本函数、用 Parse 添加变体而不改动原模板。469 收藏 -
crypto/rand.Read 正常情况下会填满切片且不返回错误;本文解释底层失败契约,并给出使用 io.ReadFull 安全丢弃不完整缓冲区的写法。154 收藏 -
regexp.Regexp 的 FindAllSubmatchIndex 返回每次匹配及捕获组在原始字节数据中的起止位置。本文用一个可复用的 Go 示例说明下标布局、可选组的 -1 结果、中文 UTF-8 字节边界和定位函数封装。182 收藏 -
说明 database/sql/driver.DriverContext、OpenConnector 与 Connector.Connect(ctx) 的职责分工,给出按 DSN 创建连接、传递取消上下文和兼容 Driver.Open 的最小实现思路。481 收藏 -
说明 database/sql 中 PrepareContext、Tx.StmtContext 与 QueryContext/ExecContext 的职责区别,给出可复用预编译语句传递请求超时、事务绑定和资源回收的最小方案。170 收藏 -
sql.TxOptions 的 Isolation 影响的是并发事务如何读取和处理数据,单次查询通常看不出变化。本文用 database/sql 的最小示例说明 BeginTx 的正确写法、两个事务的观察方式、驱动支持边界和迁移回归清单。455 收藏