Go语言技术文章
-
让 json.Encoder 直接写最终 Writer,减少应用层字节和字符串往返;需要暂存时复用 Buffer,同时处理容量保留、Bytes 借用、并发和错误边界,不承诺零分配。242 收藏 -
用 host:port 配置示例说明 Go flag.Value 的 String 和 Set 方法、flag.Var 注册方式、非法输入处理以及重复设置策略。241 收藏 -
Golang · Go问答 | 4星期前 | 标准库 · 文件读取 · Go问答 · Go archive/zip Store DEFLATE File.Open FileHeader.Method File.OpenRaw
Go archive/zip 的 FileHeader.Method 表示 ZIP 条目的压缩方法,不是文件格式。本文区分 Store=0 与 Deflate=8,说明 File.Open 的透明解压和校验、File.OpenRaw 的原始字节边界,并给出未知方法、ZIP64 尺寸和资源关闭的处理建议。241 收藏 -
Go 私有模块校验和失败要先区分公共校验库访问、仓库认证和真实摘要冲突。本文解释 GOPRIVATE 与显式覆盖,分别给出直连、企业代理配置,并说明为何应保留 go.sum 和不可变版本。241 收藏 -
Go 的 AddDate 按 Location 的日历规则加一天,DST 切换日可能对应 23 小时或 25 小时;如果业务要固定时长,应使用 Add。本文梳理时区、缺失时间、重复时间和比较持久化边界。241 收藏 -
Go net/http 的 Cookie 同时提供 RawExpires 和 Expires:前者保留 Set-Cookie 中的原始过期文本,后者是解析后的 UTC 时间。本文用一个小型响应读取示例说明如何读取、判断解析失败,并按日志、兼容处理和业务判断选择字段。241 收藏 -
用 Pond v2 的 NewSubpool 设置局部并发上限,解释子池与父池的共享额度、任务结果等待、退出顺序,以及资源预留误解和嵌套等待风险。241 收藏 -
Gonum mat.Matrix 的 T 只保证转置语义,不保证复制底层数据。本文用 Dense 和 Transpose 解释共享存储、别名规则,以及需要独立矩阵时的显式复制方式。241 收藏 -
textproto.Reader.ReadMIMEHeader 会读取以空行结束的 MIME 头,并把以空格或制表符开头的续行并入上一字段。同名字段按出现顺序保留;缺少冒号、首行缩进或非法头字节时返回协议错误。本文给出读取、排错和资源边界的实用写法。241 收藏 -
runtime.NumGoroutine 返回的是调用时刻仍存在的 goroutine 数量,不是累计创建数。本文说明读数下降的正常原因,并用连续采样与 goroutine profile 区分短时波动和持续堆积。241 收藏 -
Go 的 net/mail.AddressParser.ParseList 可以把逗号分隔的邮箱地址解析为 []*mail.Address。本文说明普通地址、显示名、带引号逗号和解析错误的处理边界,并比较它与 Header.AddressList 的使用场景。241 收藏 -
Go net.Dialer 只负责建立连接,成功返回后的 net.Conn 仍由调用方关闭。本文用生命周期日志、goroutine profile、文件描述符趋势和 httptrace 区分连接未关闭、读写卡住与 HTTP 连接池复用,并给出可落地的修复边界。241 收藏 -
x509.Certificate.SerialNumber 的类型是 *big.Int,直接转 int64 可能溢出,也不适合做统一日志键。本文给出稳定十六进制格式、issuer 与 serial 的组合方式,以及 nil、负值和原始 DER 编码的边界处理。241 收藏 -
Go types.Sizes.Alignof 描述目标模型中的对齐要求,不能直接代替字段偏移或填充。本文用结构体示例配合 Offsetsof、Sizeof,说明架构选择与布局报告的边界。241 收藏 -
Go Package.Complete 描述包元数据完整状态,不能脱离来源当作当前源码无类型错误的证明。本文区分 Config.Check、错误回调与 MarkComplete,并给出调用方状态设计示例。241 收藏