Go问答技术文章
-
Go database/sql 的 Null[T] 用 Valid 表示当前值是否为 NULL,V 只在 Valid=true 时作为业务值读取。本文按现象、证据和修复动作说明 Scan、Value、有效零值与类型转换错误的边界。403 收藏 -
Golang · Go问答 | 2天前 | 标准库 · Go问答 · 版本升级 · Go Base strconv.ParseInt Go升级 bitSize NumError ErrRange ErrSyntax ParseInt行为
Go 升级后 strconv.ParseInt 结果看似变化,通常应先比较输入字符串、base、bitSize 和 error 处理。本文用一套可复现的排查入口拆开前缀推断、位宽范围与 NumError,帮助判断差异来自调用契约还是升级本身。401 收藏 -
Go 拼接带有路径参数的 URL 时,直接把原始字符串放进 Path 容易让斜杠、空格或问号改变路径结构。本文说明 net/url.PathEscape 的正确边界,并对比 QueryEscape、url.URL.Path、RawPath 和重复转义问题。400 收藏 -
strconv.ParseInt 的错误不能只看 Error() 字符串。本文用 NumError、errors.Is 和参数边界区分语法错误、数值越界、非法进制与非法位宽,并给出适合接口输入的处理方式。398 收藏 -
Go 升级后 runtime.KeepAlive 相关代码出现差异时,先不要把问题归因于 API 随机变化。本文从对象可达性、终结器、底层资源句柄、数据竞争和 unsafe/cgo 约束五条线定位原因,并给出正确放置 KeepAlive 的最小写法。396 收藏 -
Go database/sql 的 ColumnType.Nullable 返回 nullable 和 ok 两个值。本文解释驱动不支持时为什么不能把 false 当成不可空,并给出跨数据库代码保存 unknown、按需做方言适配的兼容写法。394 收藏 -
HostLayout 约束的是 Go 结构体在当前主机上的内存布局,不是跨平台、跨进程或长期存储的字节协议。本文从一个布局误用场景拆解原因,并用 encoding/binary 演示如何显式指定字段宽度与字节序。393 收藏 -
Go 的 url.URL 会同时保留解码后的 Path 与可选的 RawPath 编码提示。本文用具体 URL 说明两者为什么不同,并用 EscapedPath 判断最终输出。391 收藏 -
bufio.Reader.ReadBytes 找不到分隔符就会同时返回已读片段和错误。本文以带读取期限的长连接为例,说明怎样保留超时返回的数据,在同一个 Reader 上延长 deadline 后继续拼接,并区分临时超时、EOF 与不可恢复错误。390 收藏 -
Go http.Client 遇到 307/308 重定向时,请求方法和请求体只有在 GetBody 可用时才能安全重放。本文说明 NewRequest 的常见 Reader 边界、自定义 Reader 的补救方式与 CheckRedirect 的控制方法。388 收藏 -
testing.T.Setenv 不是通用资源释放器,它通过 Cleanup 在测试结束后恢复环境变量。本文按生命周期、并行限制和直接 os.Setenv 三条线排查“没有释放”的错觉,并给出文件、连接和 goroutine 的独立清理写法。384 收藏 -
Golang · Go问答 | 23小时前 | go · 垃圾回收 · 资源管理 · 运行时 · 排错 · Go 垃圾回收 资源清理 runtime.AddCleanup runtime.KeepAlive runtime.Cleanup.Stop
Go Cleanup.Stop 对已经因对象不可达而排队的清理函数不会生效。本文从取消窗口、对象可达性、KeepAlive 位置和闭包反向引用四个方面说明原因,并给出显式释放与兜底清理的配合写法。383 收藏 -
Go 版本升级后如果 testing.T.Setenv 的结果看起来变了,先核对 Go 版本契约,再排查 t.Parallel、子测试祖先和环境变量读取时机。本文比较三条定位路径,并给出可直接复现的最小测试与修复选择。377 收藏 -
Go 的 CertPool.Subjects 返回证书池中证书主题的 DER 编码,不是完整证书,也不等于系统根证书总数。本文用分层检查方法解释如何读取、解析和判断这些内容,并说明 SystemCertPool 的特殊边界。374 收藏 -
使用 bytes.Buffer 时,Grow(n) 不是越大越好。本文按固定大小、近似大小和未知大小三种输入场景,说明如何估算 n,区分 len 与 cap,并给出避免频繁扩容和过度预分配的实用流程。372 收藏