Go问答技术文章
-
Go 1.27 的 go test -json 会为 output 事件补充 OutputType。本文说明如何区分普通输出、frame、error 和 error-continue,并用 Go 按行消费交错的测试 JSON 事件。458 收藏 -
自定义 http.RoundTripper 做重试时,真正容易出错的不是循环次数,而是请求体能否重放、方法是否幂等以及错误如何返回。本文用一个可运行的重试 Transport 拆开这三个边界。457 收藏 -
Go 内置 DNS 解析器执行 A+AAAA 或搜索域子查询时,StrictErrors 决定临时错误是允许返回部分地址,还是中止整体查询。本文说明其作用范围、宽松与严格代码写法、DNSError 分类和兼容性取舍。457 收藏 -
Go bytes.Buffer.Bytes 返回的是未读区切片视图,不是独立副本。本文说明 Read、Write、Reset、Truncate 为什么会让旧数据变化,并给出稳定快照的复制写法。457 收藏 -
在 Gonum stat/distuv 中,Prob(x) 表示分布在 x 处的概率密度或点概率,CDF(x) 表示截至 x 的累计分布值。本文用一个 Go 小项目对比两者,并补充 Survival、Quantile 和离散分布的选择边界。457 收藏 -
go-imap 的 Unselect 只退出当前邮箱而不清理\Deleted邮件;UnselectAndExpunge 实际发送 CLOSE,会静默执行 EXPUNGE。本文用会话状态、数据影响和 Go 封装示例说明两者如何选择。457 收藏 -
Golang · Go问答 | 2个月前 | 标准库 · golang · unicode · 字符串处理 · strings.Split Go strings.Fields 字符串分词 Unicode 空白 Go 空字符串
Go 里处理用户输入时,strings.Fields 会按 Unicode 空白归并连续分隔符,而 strings.Split 会保留空字段。本文用可运行示例对比两者在连续空格、空字符串、中文空白和尾部分隔符上的结果,帮助你按数据边界选择 API。456 收藏 -
bytes.Reader 读到末尾后,Seek、Reset 和重新创建 Reader 的效果并不相同。本文用可运行的小例子拆开读取游标、底层字节切片和并发复用边界,帮助你选对复位方式。456 收藏 -
解释 Go 在 ppc64le 环境探测外部链接器能力时,为什么会因多词 CC 命令丢失尾部参数而误判 -mcpu=power10,并给出识别与规避方法。456 收藏 -
go test 显示 (cached) 不一定是代码没更新。本文用 -count=1、GODEBUG=gocachetest=1 和 go clean -testcache 区分正常复用、输入未纳入缓存键与命令参数问题。456 收藏 -
context.Cause 在取消发生前返回 nil。本文用 WithCancelCause 和 WithTimeoutCause 说明读取时机、Err 与 Cause 的区别,以及下游错误映射边界。456 收藏 -
修改 go.mod、go get 或 replace 后,vendor/modules.txt 可能与模块图失配。本文按单模块、工作区、替换依赖三个边界说明如何重建 vendor 并用 vendor 模式复查。456 收藏 -
Go finalizer 不是对象销毁通知。短命对象可能仍可达、回调尚未执行、属于零大小或 tiny 批分配、存在引用环,或者进程已退出。本文给出判断边界、KeepAlive 用法和更稳妥的资源释放选择。456 收藏 -
说明 Go bytes.Buffer.Next 的参数超过未读长度时会返回全部剩余字节并耗尽缓冲区,进一步解释切片有效期、精确定长读取和空缓冲边界。456 收藏 -
在 Go 服务之间使用 OpenTelemetry 时,HTTP 客户端和服务端 Span 不是靠 URL 或时间戳硬拼,而是依靠传播的 Trace Context 建立父子关系。本文用 otelhttp 拆解注入、提取和常见失配原因。456 收藏