Go问答技术文章
-
说明go-diff的DiffTimeout为何同时影响搜索期限与half-match启发式,并通过比较示例区分文本重建、编辑量、可读性和调用耗时。319 收藏 -
Go gopacket 的 CaptureLength 是实际读入的字节数,Length 是原始报文长度。本文用 CaptureInfo、PacketMetadata 和 pcapgo Reader 说明两者的关系、截断判断与代码用法。319 收藏 -
用 errors.As 读取 Go encoding/csv ParseError 的 StartLine、Line、Column 和 Err,正确处理跨行引号、字段数错误与 io.EOF。319 收藏 -
Go Reader 的字节分块不保证 UTF-8 字符边界。本文给出持续使用 bufio.Reader.ReadRune 的完整示例,区分半个编码、非法字节、合法 U+FFFD 与流末尾截断,并说明批量解码的状态约定。318 收藏 -
Go LDAP 的 Referrals 是引用地址,不是已读取的条目。本文比较限定单端点、报告未处理引用和受控追踪三种策略,并给出同时保留条目、引用与错误的查询函数。318 收藏 -
Go log/slog 的 LogValuer 会把昂贵计算推迟到日志事件确实需要处理时。本文用最小示例说明禁用级别、启用 handler、结构化 Group、脱敏和 Logger.With 的边界。318 收藏 -
Golang · Go问答 | 3星期前 | HTTP客户端 · Go问答 · Go HTTP代理 net/http Transport ProxyConnectHeader GetProxyConnectHeader CONNECT
Go 的 ProxyConnectHeader 只服务于 HTTP 代理的 CONNECT 建隧道请求,不是发往目标站点的普通请求头。本文按代理选择、固定配置、动态回调和证据排查四步定位“请求头缺失”,并解释 GetProxyConnectHeader 覆盖 ProxyConnectHeader 的关键关系。317 收藏 -
Go 的 Request.Context 取消只是通知,HTTP Handler 是否退出取决于代码有没有把取消信号传到阻塞点并主动返回。本文按请求、下游调用、goroutine 和响应写入四个边界排查这个问题。317 收藏 -
Go 的 netip.Addr.String 会保留 IPv6 Zone;真正容易丢失 Zone 的位置通常是 As16、AsSlice、net.IP 转换或 Prefix。本文按字符串化、结构化比较和转换边界说明如何定位问题。317 收藏 -
说明 Go Lumberjack 的 LocalTime 为什么只影响轮转备份文件名,并用标准库 log 和自定义 formatter 分别配置日志正文时间格式。317 收藏 -
Go NATS 客户端的 Flush 只完成一次连接到服务器的往返确认,不代表异步消费者的回调已经执行完。本文区分服务器处理、客户端投递、业务完成和 JetStream ack,并给出可落地的判断方式。317 收藏 -
Go roaring 的 Bitmap.And/Or 会把结果写回当前对象,而 roaring.And/Or 返回新的位图。本文用集合示例、共享指针风险和回归清单说明如何选择,避免重构时误改输入集合。317 收藏 -
Go atomic.Value 的核心约束是同一个 Value 只能保存同一具体类型。本文从类型断言失败和 Store 冲突两个现象入手,给出配置快照、统一读取、copy-on-write 更新与并发边界检查的写法。316 收藏 -
Go currency.Cash 与 Accounting 按用途选择舍入属性。本文说明 scale 和 increment 的区别,给出参数查询代码,并区分规则记录、格式化展示和实际金额计算。316 收藏 -
go-runewidth 的全局函数都绑定 DefaultCondition,独立 Condition 则保存自己的宽度策略。本文拆开两种作用域、CreateLUT 缓存和多终端配置的取舍。316 收藏