Go问答技术文章
-
Go 切片赋值只复制描述符,不会复制底层数组。本文对比直接赋值、copy 和 slices.Clone,演示子切片修改如何影响原数据,并说明 nil、容量和 API 返回值的选择。405 收藏 -
Go 反射里 CanSet 为 false,通常不是 Set 本身的问题,而是 Value 不可寻址、来自未导出字段或少做了一次 Elem。本文用最小示例和诊断清单定位三类来源。405 收藏 -
解释 Go slog ReplaceAttr 中 groups 为空、零值 Attr、空名称 Group 内联的差别,并给出按分组路径脱敏、删除内置字段和避免回调递归的安全写法。405 收藏 -
Golang · Go问答 | 1个月前 | golang · 路由 · net/http · Go问答 · ServeMux · net/http 通配符 路径参数 ServeMux Go问答 Go 1.22 PathValue
Go 1.22 为 net/http.ServeMux 增加了方法模式、命名通配符和 Request.PathValue。本文用订单详情路由拆解单段参数、末尾多段参数、方法匹配、URL 解码和旧版 Go 兼容边界。404 收藏 -
Go 的 base64 解码遇到截断或非法字符时,会返回部分结果和 CorruptInputError。本文用 DecodeString、Decode 和 RawStdEncoding 对比补位、换行与错误位置的判断方式。404 收藏 -
Go runtime/metrics 读不到自定义名称时,先检查 runtime.Version() 和 metrics.All(),确认完整指标名、单位与版本支持集合,再把业务自定义指标交给独立采集层。404 收藏 -
Go 的 json.Unmarshal 复用结构体时,JSON 缺失字段不会自动清零,旧指针可能因此残留。本文用最小示例区分缺失、null 与对象合并,并给出安全处理方式。404 收藏 -
同一个 Go 服务进程也能按租户切出 CPU 采样上下文。本文用 pprof.Do 和 pprof.Labels 说明标签写入、goroutine 继承、同名覆盖及高基数边界。404 收藏 -
sort.Slice 不会替你校验 less 比较器是否构成严格弱序。本文从异常结果、传递性、多字段排序、稳定排序和测试清单说明如何修复比较器。404 收藏 -
Go compress/gzip 读取中途看似正常、到末尾才返回 ErrChecksum,通常是尾部长度或校验和没有通过。本文从 Reader 的结束语义、完整消费代码和 Writer.Close 收尾顺序说明如何定位与修复。404 收藏 -
Go flag.TextVar 同时连接 TextUnmarshaler 和 TextMarshaler:前者解析命令行输入,后者生成默认展示文本。本文用自定义类型说明接收者、类型匹配、帮助输出和错误处理边界。404 收藏 -
用一个小型 Go 日志筛选器说明如何同时支持文件参数和标准输入,处理参数优先级、逐行读取、字段校验、错误退出码以及管道联调。403 收藏 -
Go 反射中,Value.Elem 遇到 nil 指针会返回 zero Value。先用 IsValid 判断,再对可空 Kind 调用 IsNil,并在每次 Elem 后保留成功标志,就能避免继续访问无效 Value。403 收藏 -
用 runtime/cgo.Handle 把包含 Go 指针的状态安全交给 C 保存和回调,说明 NewHandle、Value、Delete 的生命周期、并发边界与常见失效原因。403 收藏 -
Go 向已关闭 channel 发送会触发 panic。本文从发送生命周期出发,说明关闭责任如何划分,并给出多发送方等待后统一 close 的迁移写法与排查清单。402 收藏