Go问答技术文章
-
Go 反射删除 map 元素时,SetMapIndex 的 elem 要传 reflect.Value{};本文说明零 Value、类型可赋值和 nil map 的边界。396 收藏 -
filepath.Join 采用客户端目标系统的路径规则,不能自动代表 SFTP 远端命名空间。本文区分本地与远端路径,给出单文件名拼接示例,并说明 ToSlash、词法清理和服务端权限的边界。396 收藏 -
Go http.Cookie.Valid 并不检查 SameSite 枚举。本文拆分标准库字段校验、SameSite 序列化与业务白名单,帮助定位 Cookie 看似被拒绝或属性消失的问题。396 收藏 -
Go 1.27 为小对象引入 size-specialized memory allocation。文章解释小于 80 字节的分配为何可能受益、整体收益为何不能照搬,以及如何用基准、二进制体积和 GOEXPERIMENT 做上线判断。395 收藏 -
Go 中 rune 是 Unicode 码点数值。想得到字符应使用 string(r),想得到十进制数字文本则使用 strconv.Itoa 或明确的格式化动词。395 收藏 -
sync.RWMutex 不支持把 RLock 升级为 Lock,读锁未释放时申请写锁会等待自己释放读锁而形成阻塞。本文用原创代码对比拆分读写临界区与直接使用单写锁的改造方案,并说明重新检查、锁复制和对象生命周期边界。395 收藏 -
区分Ristretto写入缓冲、Set返回值与策略接纳,说明Wait为何不能保证命中,并给出诊断片段、TTL与成本排查及缓存未命中回源写法。395 收藏 -
Go 的 atomic 操作只为原子访问提供同步语义,同一共享变量若再混用普通读写,仍可能产生数据竞争。本文按资产、攻击路径、防护控制和验证清单说明统一访问策略。395 收藏 -
Golang · Go问答 | 2星期前 | go · 垃圾回收 · 性能排查 · 运行时 · 内存分配 GOGC Go GC runtime.MemStats HeapAlloc TotalAlloc NumGC
Go GC 频繁触发时,先用 TotalAlloc 增量判断分配速率,再对照 HeapAlloc、HeapObjects 和 NumGC,区分短命对象过多、存活堆增长与调参边界。本文用一个最小采集器给出判断路径。395 收藏 -
Go Benchmark 结果抖动时,先检查 ResetTimer、RunParallel 与外部资源是否把计时范围混在一起。本文用固定输入、并行边界和重复运行命令整理 ns/op 与 allocs/op 的正确解释方式。395 收藏 -
Go Zerolog 的 Info、Error 等方法只会创建待提交的 Event;本文说明为什么缺少 Msg 会没有输出,并给出 Msg、Msgf、Send 及等级、采样、writer 排查顺序。395 收藏 -
Go HTTP 请求应把 context 超时绑定到 Request,并在拿到响应后关闭 Response.Body;循环调用时复用同一个 http.Client,让 Transport 有机会复用持久连接。395 收藏 -
Go 中 T 与 *T 的方法集并不相同:值接收者方法同时属于 T 和 *T,指针接收者方法只属于 *T。本文用最小示例解释接口赋值失败、自动取址边界与实现选择。394 收藏 -
Go encoding/json 默认会忽略结构体中没有对应字段的 JSON key。本文说明 Decoder 的未知字段边界、结构体匹配规则,以及如何用 DisallowUnknownFields 显式启用严格解析。394 收藏 -
Golang · Go问答 | 1星期前 | 标准库 · go · database/sql · Go database/sql driver.ErrSkip NamedValueChecker DefaultParameterConverter ColumnConverter
Go 数据库驱动的 NamedValueChecker 不必覆盖所有参数类型。本文说明 driver.ErrSkip 如何把未处理类型交给 ColumnConverter 或 DefaultParameterConverter,并区分普通转换错误与 ErrRemoveArgument,帮助定位参数类型和数量问题。394 收藏