Go语言技术文章
-
Go x/image/font/sfnt 的 GlyphIndex 用于把 rune 映射到字体中的字形索引。本文从缺字症状出发,说明字体解析、Buffer 复用、返回 0 的含义,以及如何继续读取字形名称、边界和轮廓。318 收藏 -
用 Go archive/tar 读取 tar 条目的 PAXRecords 扩展属性,本文覆盖 Reader.Next、键存在判断、命名空间、Xattrs 等价关系和写入优先级。318 收藏 -
Go Validator 的 dive 用于把校验规则下沉到切片元素。本文用批量邮箱和订单明细示例说明容器规则、元素规则、嵌套结构体、错误下标与空值边界的写法。318 收藏 -
Go LDAP 的 Referrals 是引用地址,不是已读取的条目。本文比较限定单端点、报告未处理引用和受控追踪三种策略,并给出同时保留条目、引用与错误的查询函数。318 收藏 -
Go HTTP 服务端用 MaxBytesReader 限制请求体后,应该通过 errors.As 区分正常读取、超过上限和其它读取错误。本文给出带 Close 的 handler 写法,并说明大小限制与业务校验的边界。318 收藏 -
Go log/slog 的 LogValuer 会把昂贵计算推迟到日志事件确实需要处理时。本文用最小示例说明禁用级别、启用 handler、结构化 Group、脱敏和 Logger.With 的边界。318 收藏 -
Go 的 ctx.Err() 只能告诉你上下文已取消或超时,context.Cause(ctx) 则能在使用 WithCancelCause 或 WithTimeoutCause 时读取更具体的原始原因。本文用最小示例说明两者差异、父子上下文传播和工程接入边界。318 收藏 -
Go encoding/json 处理连续 JSON 对象时,可以为同一个 io.Reader 创建 json.Decoder,反复 Decode 并用 io.EOF 结束。本文封装一个可复用的泛型读取函数,说明空输入、语法错误、数组边界和大流式输入的处理方式。318 收藏 -
用一个最小 Go 源码分析器读取 types.Info.Selections,解释 Selection.Kind 返回 FieldVal、MethodVal 和 MethodExpr 的差异,重点区分 p.Run 方法值与 Worker.Run 方法表达式,并输出接收者、函数类型和嵌入路径。318 收藏 -
path/filepath.Rel 不是任意两个绝对路径都能计算相对路径。本文从 VolumeName 入手,解释 Windows 盘符、UNC 共享路径和 Unix 路径的差异,并给出保留错误的跨平台写法。318 收藏 -
Go billy 的 OpenFile 中,O_CREATE 只负责目标不存在时创建,O_TRUNC 负责打开已有文件时清空内容。本文用 memfs 与 osfs 的接口语义对比新建、覆盖、追加和排他新建,避免误删旧文件。317 收藏 -
以检索结果页说明 Go html/template 的上下文转义、普通模板函数与可信片段,给出固定HTML标记的完整示例,并明确模板源码、富文本和URL的信任边界。317 收藏 -
Golang · Go问答 | 3星期前 | HTTP客户端 · Go问答 · Go HTTP代理 net/http Transport ProxyConnectHeader GetProxyConnectHeader CONNECT
Go 的 ProxyConnectHeader 只服务于 HTTP 代理的 CONNECT 建隧道请求,不是发往目标站点的普通请求头。本文按代理选择、固定配置、动态回调和证据排查四步定位“请求头缺失”,并解释 GetProxyConnectHeader 覆盖 ProxyConnectHeader 的关键关系。317 收藏 -
表格驱动和并行子测试中,把资源创建、t.Cleanup 注册和释放范围放在同一个子测试作用域,可以覆盖失败、跳过与独立运行场景;本文说明父子清理顺序、后注册先执行和共享资源边界。317 收藏 -
Go archive/tar 当前没有公开的 Reader.WriteTo 方法。本文解释源码内部 writeTo 与 Reader.Read 的差异,说明稀疏文件空洞为何会表现为 NUL 字节,并给出普通解包与额外恢复层的边界判断。317 收藏