Go问答技术文章
-
Go pprof 端口不只是一个性能页面:/debug/pprof/ 可能返回命令行、栈信息和运行时 profile,CPU 与 trace 采集还会带来额外开销。本文说明暴露风险,并给出只监听本机、受控访问和发布前检查的方法。214 收藏 -
slog 包装 Handler 丢失 With 字段,常见原因是未保留派生状态。本文给出四方法委托实现与父子、分组、等级测试,并区分 Record 属性和 context.Value 的处理边界。213 收藏 -
解释 Go x/text/unicode/bidi 中段落主方向、连续方向 run 和视觉顺序的区别,给出混合中文、拉丁字母、阿拉伯文字与数字时的处理写法。213 收藏 -
Go fitsio 的 Header.Axes 返回各维度长度,len(axes) 只是轴的数量;读取图像时要把所有轴长度相乘,并让目标切片类型与 BITPIX 对应。本文给出二维、三维图像的排查和读取写法。213 收藏 -
Go 的 http.Redirect 不只是把请求送到新地址,code 参数还决定临时跳转、PRG 和原方法保持等语义。本文按调用方需求说明 301、302、303、307、308 的选择,并给出带中文注释的可复用处理器。213 收藏 -
go/constant.BinaryOp 中 token.QUO 保留 Int 除法的有理数结果,而 token.QUO_ASSIGN 强制返回整数商。本文用最小示例解释两者的实现分派、与 Go 编译器常量规则的关系,以及选择时的输入和异常边界。213 收藏 -
Go 的 -race 会在运行时观察并发访问,因此内存和执行时间都会增加。本文拆解开销来源,并给出提交级、合并级和真实负载的测试分层方案。212 收藏 -
Go encoding/json/v2 中旧的 inline 标签为什么不生效?本文说明 Go 1.27 已改用 embed,并梳理可嵌入字段的类型、匿名字段和显式名称边界。212 收藏 -
Go go-ical 的 TEXT 属性不能把逗号、分号、反斜杠和换行直接拼进线格式。本文说明 SetText、SetTextList、Text、TextList 的选择,以及业务换行、列表分隔和物理折行的边界。212 收藏 -
用短作用域请求函数说明Go HTTP响应体的关闭责任,覆盖状态异常与读取失败,区分EOF、Close和连接复用,并处理循环defer及流式接口的所有权。212 收藏 -
Go regexp.Regexp.ReplaceAllStringFunc 适合让每个匹配结果参与替换计算。本文对比固定模板替换,说明回调参数、$ 字符边界、未匹配文本保留和迁移检查方式。212 收藏 -
Go TLS 服务端没有按 SNI 返回证书时,先检查 ClientHelloInfo.ServerName 是否存在、证书索引是否按规范化域名匹配,以及 GetCertificate 的回退优先级。本文给出带默认站点和错误诊断的最小配置。212 收藏 -
SystemCertPool 的跨系统差异来自系统信任、进程环境与 Go 版本,不能用 Subjects 数量直接判断可信范围。本文给出不联网的最小复现程序,固定证书链、名称、用途和时间,对照系统信任与显式根,并解释错误与生命周期限制。212 收藏 -
Go gzip.Reader 默认合并多成员内容,Multistream(false) 在当前成员结束时停止。用完整内存示例比较两种读取方式,说明 Reset 复位、ByteReader 边界和资源关闭责任。211 收藏 -
Go pprof 堆 profile 与实时对象数量不同,常见原因是指标单位、存量与累计口径、GC 时点和采样估算不同。本文用两份本地快照示例说明如何保留对象、显式选择指标,并避免误判泄漏。211 收藏