Go语言技术文章
-
slices.Clip 会把 Go 切片的 cap 收紧到 len,避免后续 append 复用多余容量;但它不复制底层数组,真正要释放长期持有的大数组仍需建立独立副本。478 收藏 -
go work sync 会把工作区的构建列表同步回 use 指定的各个模块,因此 go.mod 可能新增间接依赖或升级版本。本文给出确认工作区、区分单模块依赖、整理 go.mod 的实用步骤。478 收藏 -
Go 中值类型不能赋给接口,常见原因是接口要求的方法由指针接收者声明,因而只进入 *T 的方法集。本文用最小示例区分方法调用的自动取地址与接口赋值规则,并给出值接收者、指针接收者和编译期断言的判断方法。478 收藏 -
Go range 遍历结构体切片时,迭代变量拿到的是元素值副本;本文对比索引、指针切片和 map 的写法,说明怎样让字段修改真正写回原数据。478 收藏 -
Go runtime/trace.Start 后忘记 Stop,短命程序可能没有完整写出追踪尾部,长驻进程则会持续采集并影响后续 Start。本文拆解追踪状态、Writer 和文件关闭顺序,给出可直接复用的 defer 写法与排查清单。477 收藏 -
html/template 会根据 href、普通属性和文本所在上下文自动转义动态值。本文用一个可复用的链接渲染流程说明协议筛选、URL 规范化、错误处理和 template.URL 的信任边界,帮助 Go 模板安全输出动态链接属性。477 收藏 -
围绕 Go log/slog 解释 Logger.With 如何通过 Handler.WithAttrs 创建带公共字段的派生日志上下文,说明原 Logger 不变、后续记录生效,以及 WithGroup 与 With 的顺序边界。477 收藏 -
自定义 Go flag.Value 后,帮助信息可能显示默认的 value。本文说明 flag.UnquoteUsage 如何读取 usage 中的反引号占位符,怎样让自定义参数显示 tag、directory 等更明确的名称,并给出自定义帮助输出时的复用方式。477 收藏 -
comment.Parser按缩进结构识别预格式块,不依据内容是否像Go代码。本文通过Paragraph和Code对照,说明如何修正正文缩进并保留真正示例的版式。477 收藏 -
用 Go 1.24+ 的 os.OpenRoot 和 Root.Open 封装根目录内文件读取,讲清 ../ 路径、符号链接、错误包装和资源关闭边界。477 收藏 -
Go benchmark 调用 testing.B.ReportAllocs 后,可以在结果中看到 allocs/op 与 B/op。本文说明如何放置调用、排除准备阶段、比较子 benchmark,并处理 b.Loop、b.N 和 RunParallel 的统计边界。477 收藏 -
Go pprof 暴露后,优先把业务 mux 与诊断 mux 分开,并让 pprof 监听回环或私网地址;需要远程采集时再叠加 TLS、认证、代理和 profile 级采集边界。477 收藏 -
Go debug.SetMemoryLimit 可以给 runtime 设置按字节计算的软内存目标。本文按值班手册说明适用环境、容器余量、运行时指标、持续 GC 判断和回滚方式。477 收藏 -
本文用 Go net/http 演示 Cookie.Partitioned 的设置方式,说明它与 Secure、SameSite=None、Path 的关系,以及 Go 版本兼容和响应头排查边界。477 收藏 -
Golang · Go教程 | 2星期前 | 标准库 · JSON · 错误处理 · go · 调试 · Go errors.As encoding/json/v2 SemanticError JSONPointer
Go encoding/json/v2 解码失败时,SemanticError 会携带 ByteOffset、JSONPointer 和 GoType 等上下文。本文用嵌套配置示例说明如何提取这些字段、转换行列位置,并区分语法错误、语义错误与流式读取错误。477 收藏