Go语言技术文章
-
Go PGO 的关键不是随便拿一份 CPU profile,而是让 profile 代表真实工作负载。本文从采集范围、统一采样窗口、多实例合并到 default.pgo 和 -pgo 构建,整理一套可以持续更新的准备方法。205 收藏 -
Go 私有模块拉取失败时,先让 GOPRIVATE 匹配真实的模块路径前缀,再区分直连 VCS 与私有代理方案。本文说明 GOPRIVATE、GONOPROXY、GONOSUMDB 和 GOPROXY 的关系,并给出不泄露凭据的排查顺序。205 收藏 -
把 C.CString 看成 C 堆上的临时副本:同步调用在分配后立即 defer C.free,C 侧长期保存时按明确的销毁契约释放,C.GoString 复制完成后再回收。205 收藏 -
Go 的 json.SyntaxError.Offset 表示解析器读过的字节数。本文用 error.As 取出语法错误,安全截取错误附近内容,再把字节偏移换算成行列位置,并区分 SyntaxError、InputOffset 与类型错误的适用边界。205 收藏 -
Go simd/archsimd 代码跨架构失败,常见原因不是变量名,而是固定宽度向量、架构专用操作和构建标签共同决定了参数形态。本文按官方实验接口说明排查边界,并把架构相关类型隔离在对应文件中。205 收藏 -
Go 的模块缓存不是构建缓存,默认位于 GOPATH/pkg/mod。本文用 go env GOMODCACHE 读取当前生效目录,并解释自定义配置、缓存迁移和安全清理时容易混淆的边界。205 收藏 -
Go filepath 使用目标操作系统的路径规则。本文区分构建宿主和目标产物,给出路径观察示例,并说明 GOOS、GOARCH、构建约束与文件路径、URL 路径的处理边界。205 收藏 -
xml.Encoder 的 Indent 会按元素嵌套深度插入换行和缩进。本文说明 prefix、indent 的区别,以及 EncodeToken 场景下 Flush、Close 的收尾边界,帮助你稳定生成可读的流式 XML。205 收藏 -
Go netip.Prefix 表示一个 CIDR 网段,但 Addr 可能仍保留主机位。本文用 Masked 得到规范化起始地址,再按 IPv4 与 IPv6 的位数计算最后地址,说明无效前缀、单地址前缀和地址族边界。204 收藏 -
Go 用 ParseRequestURI 解析无前导斜线的相对引用失败,需先区分请求路径、通用引用与 HTTP 绝对地址。本文给出对应解析封装,说明 URL 字段、双斜线及 fragment 的差异,避免自动补协议改变含义。204 收藏 -
Go json.Decoder.More 只回答当前数组或对象是否还有成员,不是判断流中是否还有下一个 JSON 值。本文用数组、对象和嵌套结构说明 Token、More、Decode 的职责边界。204 收藏 -
Go cases.Title 实现标题式大小写,不会将每个单词全部转成大写。本文比较 Title、NoLower 与 Upper,说明语言标记、单词边界、分块状态和显示字段的处理。204 收藏 -
将 Expr 编译移出重复求值路径,保存并复用 vm.Program;通过完整 Go 示例说明 Env、AsBool、独立输入,以及规则更新和缓存失效的处理边界。204 收藏 -
Golang · Go教程 | 1星期前 | 标准库 · JSON · Go教程 · encoding/json · Go encoding/json Prefix JSON格式化 indent json.MarshalIndent
Go json.MarshalIndent 会先把 Go 值编码为 JSON,再用 prefix 和 indent 排版嵌套结构。本文区分两个参数的职责,说明接口、配置和日志场景的选型,并补充错误处理、json.Indent 与 HTML 转义的边界。204 收藏 -
Go 错误经过多层 %w 包装后,不能再依赖 == 或完整错误文本判断原因。本文用 errors.Is 处理多层 Unwrap,区分 errors.Unwrap 的单层职责,并说明错误分类与上下文包装的边界。204 收藏