Go教程技术文章
-
csv.Reader 的 FieldPos 可以把最近一次 Read 返回记录中的字段索引映射到 CSV 原文的起始行和字节列。本文说明正确调用时机、多行字段与中文列号的边界,以及 FieldPos 和 ParseError 的选择。167 收藏 -
Go encoding/csv 的 Reader.InputOffset 返回最近一条完整记录结束处的字节偏移。本文用可恢复的处理示例说明如何保存断点、校验文件并从安全边界继续读取。197 收藏 -
encoding/csv.Reader 的 ReuseRecord 可以复用上一轮记录切片的底层数组,减少大批量读取时的切片分配。本文给出逐行转换、分批写入与跨轮次复制的安全写法。342 收藏 -
Go 1.22 起可用的 database/sql.Null[T] 通过 V 和 Valid 保留 SQL NULL 语义。本文用 QueryRow、Rows.Scan 和写回参数说明可空字段的扫描方式、类型边界与常见误区。156 收藏 -
介绍 Go database/sql 中 sql.Named 的正确用法,讲清具名占位符、NamedArg、参数名前缀、驱动兼容性与错误处理,并给出可复用的多条件查询示例。138 收藏 -
讲清 Go database/sql 中 Rows.Next 返回 false 的双重含义,给出 Query、Scan、Rows.Err 和 Close 的错误边界与可复用代码模板,避免把迭代失败误判为正常结束。440 收藏 -
围绕 Go tls.Config 的 SetSessionTicketKeys,说明服务端会话票据密钥的默认自动轮换、手动 key ring、多副本同步、旧 key 移除和回滚边界。474 收藏 -
讲清 Go tls.Config.KeyLogWriter 的 NSS key log 用法、文件权限、连接复用边界和调试后的清理方式,帮助定位 TLS 抓包解密问题并避免密钥输出进入生产环境。304 收藏 -
Go 服务端可通过 tls.Config.GetCertificate 读取 ClientHelloInfo.ServerName,按 SNI 从只读证书表选择证书。本文给出默认回退、SupportsCertificate 检查和原子快照热更新写法。359 收藏 -
VerifyConnection 可以在 Go 默认的证书链与主机名校验之后追加应用级约束。本文用 SPKI SHA-256 摘要限制服务端公钥,并给出双摘要轮换、会话恢复和错误处理建议。160 收藏 -
从父 Context 的 Deadline 读取剩余时间,先预留收尾余量,再用比例与最大值计算子任务超时。本文给出可复用的预算函数,并说明无截止时间、预算耗尽和并发子任务的处理边界。232 收藏 -
Go context.AfterFunc 会在取消后异步执行回调。本文用 stop 返回值、sync.Once 和 done channel 说明如何收敛外部资源的释放所有权,避免取消竞态下重复关闭或提前返回。465 收藏 -
Golang · Go教程 | 1天前 | 错误处理 · 数据校验 · Go教程 · Go compress/gzip ErrChecksum gzip.Reader io.ErrUnexpectedEOF
Go 的 gzip.Reader 只有在完整读取到 gzip trailer 后才能完成 CRC32 和原文长度校验。本文用原创示例说明如何区分截断数据、校验和错误、非法头部与正常 EOF。347 收藏 -
Go 的 gzip.Writer 可以通过 Reset 复用,但切换输出前必须先 Close 当前 GZIP 流。本文用批处理示例说明 Write、Close、Flush、Reset 的顺序、差异和容易忽略的边界。476 收藏 -
Go 的 gzip.Writer 可以在首次写入前通过 Name 和 ModTime 设置 GZIP 头元数据;本文给出可读回核对的完整示例,并说明 Close、Reset、零值时间和编码边界。215 收藏