Go问答技术文章
-
面向以 -cover 构建的长期运行程序,说明 Go runtime/coverage.WriteCountersDir 生成的计数快照如何与匹配的元数据配合,并用 go tool covdata 做汇总分析。341 收藏 -
解释Gonum Poisson的Lambda为何是固定窗口平均次数,通过速率换算和理论概率对比区分成功概率,并说明二项分布、样本估计与零均值边界。341 收藏 -
说明 Go ast.PreorderStack 如何把祖先节点栈传给回调,解释 stack 不含当前节点、返回 false 跳过子树和初始栈参数的边界,并对比 Preorder 与 Inspect。341 收藏 -
runtime.KeepAlive 本身没有错误返回值。本文从受保护的资源操作入手,说明如何保留 n 和 err,再用 errors.Is、errors.As 区分中断、句柄失效与其他底层原因,并把 KeepAlive 放在正确的生命周期边界。341 收藏 -
讲清 Go 中 http.Request.URL.Query 返回的 url.Values 结构,如何读取重复参数、保留出现顺序,并区分参数缺失与显式空值。340 收藏 -
Go 的 net/url 会把 URL 路径解码到 Path,同时用 RawPath 保留可复原的编码提示。掌握 URL.EscapedPath 的判断规则,才能在 %2F、路径重写和请求回放场景中稳定保留原始路径语义。340 收藏 -
Golang · Go问答 | 2个月前 | 并发 · pprof · 故障排查 · Go问答 · Go goroutine泄漏 net/http/pprof goroutineleak runtime/pprof
Go 1.27 将 goroutineleak profile 作为正式能力,但空结果不等于没有泄漏。本文从 runtime/pprof 的可达性判定出发,核对阻塞原语、全局对象盲区与 net/http/pprof 入口。340 收藏 -
Go 方法值创建时会保存接收者。指针接收者保存的是指针副本,调用时仍能沿指针修改原对象;值接收者保存的是结构体副本,后续变化不会回写。340 收藏 -
Go container/list.MoveAfter 传入同一个节点时不会改变顺序,因为 e == mark 没有新的位置;本文进一步区分节点值相同、已经相邻和跨链表节点的边界。340 收藏 -
Golang · Go问答 | 1个月前 | goroutine · net/http · Go问答 · Go recover panic 连接中断 Request.Context HTTP handler
Go HTTP handler 出现 panic 时,外层 recover、net/http 默认恢复和客户端连接中断不是同一件事。本文用最小中间件说明 recover 的作用域、已提交响应的边界、Request.Context 取消信号,以及子 goroutine 如何单独处理 panic。339 收藏 -
Go net/http 会按目标主机判断敏感请求头是否继续转发。本文结合 CheckRedirect 说明默认行为、跨域边界和受控目标的认证头处理方式。339 收藏 -
Go sync.Cond 的 Wait 返回只表示收到通知,不代表共享条件已经成立。本文用队列式示例说明为什么必须在循环中重新检查条件,并梳理 Signal、Broadcast 与锁的配合边界。339 收藏 -
Go select 多个发送或接收分支同时就绪时会均匀伪随机选择,本文说明 case 顺序、default、关闭通道和 nil 通道的边界,并给出优先级处理方案。339 收藏 -
Go time.Ticker.Reset 只改变后续周期,不等于清空 ticker.C。本文解释旧 tick 为什么不能用普通接收直接“排空”,并给出单 goroutine、非阻塞判断和重建 ticker 的选择边界。339 收藏 -
time.Duration 本质是纳秒整数,String 会按可读性自动选择小时、分钟、秒、毫秒、微秒或纳秒,并保留负值符号。本文用典型场景解释这些输出为什么不同,以及接口需要固定格式时怎么处理。339 收藏