-
在 Go 中使用 Gonum mat 求解线性方程组时,不必先计算 A 的逆矩阵。本文从 A·X=B 的形状入手,用 Dense.Solve 处理单个和多个右端项,并给出 Condition 错误、维度排查与残差确认方法。
-
Go malgo回调内频繁分配会增加耗时与GC压力,音频卡顿还需排查源数据和调度。通过预加载S16 PCM回调示例说明职责边界、静音处理及回滚观察方法。
-
go mod graph 会把模块需求图按一行一条边打印出来,适合查看主模块、传递依赖、版本要求和 replace 后的关系。本文说明输出格式、筛选方法,以及它和 go list -m all、go mod why 的区别。
-
Go 的 os.OpenFile 传入 0666 后,新文件可能显示为 0644,原因通常是 Unix-like 系统的 umask 按位屏蔽了权限。本文结合 O_CREATE、O_TRUNC、默认 ACL 和跨平台边界说明如何排查。
-
Go http.Client 遇到 307/308 重定向时,请求方法和请求体只有在 GetBody 可用时才能安全重放。本文说明 NewRequest 的常见 Reader 边界、自定义 Reader 的补救方式与 CheckRedirect 的控制方法。
-
Go crypto/aes 不会替业务配置自动处理可选字段:密钥始终必填,GCM 的 nonce 按模式决定是调用方提供还是由随机封装生成,AAD 可以为空但解密必须保持一致。本文用一个小型配置入口拆清缺省字段的判断、错误和适用边界。
-
Go go/build.Context 看似配置了 GOOS、GOARCH 或 BuildTags 却没有生效,通常是调用了 build.Import、路径不是绝对路径,或把 go/build 误当成 go build 的控制器。本文用最小示例拆开这三类边界。
-
Go net/http.Transport 连接池不复用时,先确认 Transport 是否被重复创建,再用 httptrace.GotConn 判断 Reused 和 WasIdle,最后检查 Response.Body、Keep-Alive 参数与服务端连接边界。
-
HTTP Trailer 不是普通响应头,客户端只有把 Response.Body 读到 EOF 后才能稳定读取 resp.Trailer。本文用 Go net/http 示例说明声明时机、客户端消费顺序、io.CopyBuffer 缓冲区复用和代理链排查方法。
-
Go types.Package.Imports 返回包的直接导入依赖,并保持源码顺序。本文从已有的 *types.Package 出发,用包路径去重递归构建依赖图,再说明 export data 与源码 ImportSpec 的边界。
-
Go 的 bufio.Reader.Peek 可以查看协议头而不推进读取位置,适合在流式输入中先判断协议类型再决定后续解析。本文用固定协议头示例说明 Peek 的缓冲区上限、短读错误、返回切片有效期,以及确认后的 Read 和 Discard 用法。
-
Go TLS 证书不匹配时,先确认客户端是否通过 ServerName 发送了 SNI,再查看服务端按 ClientHelloInfo.ServerName 选择了哪条证书链,最后区分 SAN、信任链和中间证书问题。本文给出一套只围绕握手日志与证书选择的定位方法。
-
Go 的 json.Indent 可以把已有 JSON 字节直接缩进追加到 bytes.Buffer,适合日志拼接、响应包装和缓冲区复用。本文按完整工作流说明参数选择、Reset、错误处理,以及它和 json.MarshalIndent 的区别。
-
用 Go regexp.Regexp 的 ExpandString 配合命名捕获组和 SubmatchIndex,把正则匹配结果按模板顺序展开到可复用的 dst 缓冲区,并说明变量边界、未匹配组与字面量美元符号的处理。
-
Go 的 net.ListenConfig 没有直接暴露所有 socket 选项时,可以使用 Control 回调在 socket 创建后、绑定前通过 RawConn 设置平台相关参数。本文以 Linux TCP 的 SO_REUSEADDR 为例,说明错误传递、tcp4/tcp6 和跨平台边界。