Go语言技术文章
-
Go 更新接口中,缺失字段、JSON null 和空字符串不是同一种含义。本文用 json.Decoder 与 json.RawMessage 保留字段存在性,再映射为可校验的三态结构,避免 PATCH 请求误覆盖数据。293 收藏 -
context.AfterFunc 的 stop 函数只负责阻止尚未启动的回调,不保证等待。本文用 sync.Once 和 done 通道封装主动 Close 与 Context 取消,避免资源清理重复执行。292 收藏 -
Go errgroup 的并发上限和取消传播是两套机制。本文用 WithContext、SetLimit、TryGo 和 Wait 说明任务组的取消边界、提交背压与待处理任务的收口方法。292 收藏 -
说明 go.mod 中 go 指令的真实含义,演示如何读取、修改和检查它,并区分最低 Go 版本与 toolchain 建议。290 收藏 -
解释 Go channel 缓冲区满后发送方持续等待的原因,给出容量判断、消费者排查、select 退出和关闭责任的实用处理方式。290 收藏 -
讲清 Go http.CookieJar 中 Domain 为空与显式 Domain 的区别,结合 HostOnly、Path、Secure 和 PublicSuffixList 给出 Cookie 投递范围排查方法。289 收藏 -
Go filepath.Rel 遇到绝对路径和相对路径混用时,先用 filepath.Abs 统一计算基准,再处理跨根目录、../ 越界、符号链接和 URL 路径等边界。288 收藏 -
Go 的 http.Hijacker 接管连接后,ResponseWriter 已退出标准 HTTP 响应路径。本文解释 HTTP/1.x、HTTP/2、包装器和 ErrHijacked 的边界,并给出切换到 net.Conn 与 bufio.ReadWriter 的写法。288 收藏 -
Go 处理 jsonnull 时,字段缺失、JSON null、空数组和有值数组不能只用 len 判断。本文用最小复现、Nullable 状态和 PATCH 分支说明如何定位空值错误。287 收藏 -
解释 Go sort.Search 返回 len 的真实含义,演示如何用边界检查和候选值比较区分目标不存在、末尾插入与实际命中。286 收藏 -
围绕 Go testing.B.RunParallel 说明 b.N、GOMAXPROCS、SetParallelism 与墙上时间的关系,给出在并行基准结束后用 b.N 除以 b.Elapsed 估算 ops/s 的写法,并梳理 CPU、锁和外部依赖造成的吞吐边界。284 收藏 -
Golang · Go问答 | 6天前 | 代理 · 环境变量 · 故障排查 · HTTP客户端 · Go问答 · Go http.Transport http.Client ProxyFromEnvironment HTTP_PROXY HTTPS_PROXY NO_PROXY
Go HTTP 客户端代理环境变量不生效,通常不是变量名写错,而是请求没有走 DefaultTransport、自定义 Transport 覆盖了 Proxy,或进程首次解析代理后才修改环境变量。本文给出直接探测、修复和复查方法。282 收藏 -
Go fuzzing 找到失败输入后,怎样从日志、testdata/fuzz 目录和 -run 路径中定位首次失败案例,并把它变成稳定回归测试。282 收藏 -
signal.NotifyContext 返回的 stop 不只是结束 context,它还会注销信号接管并释放关联资源。本文用优雅退出、重复测试和短生命周期任务说明 stop 的调用时机与边界。282 收藏 -
设置 GOPRIVATE 后仍看到 proxy.golang.org 请求,通常是模块路径未匹配、GONOPROXY 覆盖或 GOPROXY 回退造成的。本文按检查、匹配、架构选择和缓存复查四步定位。281 收藏