Go语言技术文章
-
讲清 Go fs.WalkDir 中 SkipDir 与 SkipAll 的区别:目录剪枝、普通文件上的特殊语义、全局提前结束、普通错误和上下文取消的正确处理方式。283 收藏 -
用 Go execution trace 观察 goroutine 的阻塞区域,掌握 trace 文件采集、task/region 标记、go tool trace 阅读和 pprof 导出方法。283 收藏 -
netip.Addr 本身就是不可变且可比较的值类型。本文从字符串解析、IPv4-mapped IPv6 规范化、zone、零值和端口边界出发,给出把 IP 地址安全放入 Go map 的实现方式。283 收藏 -
Go 内置 copy 对源和目标切片的重叠有语言规范保证,复制结果不受内存区间是否重叠影响。本文给出切片左移删除、右移插入的可靠写法,并说明返回数量、容量和并发边界。283 收藏 -
讲清 govulncheck 如何把依赖模块中的已知漏洞分成实际可达调用与仅被依赖两类,并结合调用栈、构建标签、源码与二进制扫描边界,给出升级、移除调用和复扫的实用判断清单。283 收藏 -
Go database/sql 的 PingContext 超时不能只靠调大时间解决。本文用有限上下文拆分调用取消、驱动失活连接和配置错误,并说明探活与连接池后续查询之间的边界。283 收藏 -
用 Go BinaryMarshaler 与 BinaryUnmarshaler 实现自定义二进制类型,明确输入副本、独立编码结果、错误原子性以及长度和版本处理,避免切片共享带来数据联动。283 收藏 -
Go 的 textproto.CanonicalMIMEHeaderKey 会把合法 MIME 请求头键名转换成首字母和连字符后字母大写、其余字母小写的形式;本文说明空格和非法字段字节为何原样返回,以及 MIMEHeader 读写与直接 map 访问的边界。283 收藏 -
介绍Go simd实验开关与工具链要求,以整数切片加偏移示例说明向量长度、广播、整组加载和尾部有效数据写回,并用构建约束保留普通实现。283 收藏 -
用 reflect.Value.Seq2 把 map、slice 和自定义迭代器统一接入泛型消费逻辑,说明 CanSeq2 的预检边界、Value 解包方式以及容易触发 panic 的场景。282 收藏 -
Go slog.JSONHandler 的 ReplaceAttr 不只是删字段:本文用真实调用路径说明 groups、Attr 和零值 Attr 的边界,给出隐藏敏感日志字段的安全写法。282 收藏 -
Go 服务排查请求体时,io.TeeReader 可以把已经读取的数据同步写入审计缓冲区,同时把原始 Reader 的数据继续交给解析器。本文用真实读取链说明它的无缓冲边界、写入错误传播和敏感数据限制。282 收藏 -
Golang · Go问答 | 1个月前 | 网络编程 · HTTP · Go问答 · Go HTTP代理 http.Transport ProxyFromEnvironment HTTP_PROXY
Go 的 http.Get 并不是绕过环境配置直接联网:DefaultClient 会使用 DefaultTransport,而 DefaultTransport 默认把 Proxy 绑定到 ProxyFromEnvironment。本文沿着调用链解释 HTTP_PROXY、HTTPS_PROXY、NO_PROXY 和 localhost 的关系,并给出关闭或显式指定代理的写法。282 收藏 -
用 Go 的 os.ReadDir 读取目录,按文件大小筛选普通文件,并通过大小与文件名双关键字得到稳定、可重复的排序结果。282 收藏 -
Golang · Go问答 | 1个月前 | 代理 · 环境变量 · 故障排查 · HTTP客户端 · Go问答 · Go http.Transport http.Client ProxyFromEnvironment HTTP_PROXY HTTPS_PROXY NO_PROXY
Go HTTP 客户端代理环境变量不生效,通常不是变量名写错,而是请求没有走 DefaultTransport、自定义 Transport 覆盖了 Proxy,或进程首次解析代理后才修改环境变量。本文给出直接探测、修复和复查方法。282 收藏