Go问答技术文章
-
Go 自定义 Transport 后 HTTP/2 不再生效,常见原因不是服务端突然关闭,而是 Dial、DialContext、DialTLS 或 TLSClientConfig 触发了保守默认。本文给出 ForceAttemptHTTP2、Protocols、ALPN 与连接复用的排查顺序。250 收藏 -
rtreego 最近邻比较查询点到 Bounds 矩形的最短欧氏距离。通过两个矩形说明它与中心距离、真实几何距离的区别,以及候选重排和返回值的局限。250 收藏 -
Go 类型断言的单值写法在目标类型不匹配时会 panic。本文用 comma-ok 形式、nil 边界和 type switch,说明怎样安全处理接口中的动态类型。250 收藏 -
澄清 http.Cookie 无需关闭,按响应体、Transport、CookieJar、业务缓存和服务端会话区分资源生命周期,并给出一次请求内关闭响应体的写法。250 收藏 -
用不连接数据库的最小示例区分 NULL、空字符串与普通文本,解释 sql.NullString.Valid、业务 JSON 映射及查询无行和扫描错误的处理。250 收藏 -
Go 中两个声明里的 T 即使名称和约束都相同,也属于不同的类型参数对象。本文用 go/types.TypeParam、Obj、Constraint、Index 和 Identical 对比常见判断方式,说明源码分析时为什么必须保留声明作用域。250 收藏 -
Go 客户端使用独立 CookieJar 管理账号会话,结合域名、路径和 PublicSuffixList 判断 Cookie 隔离边界,避免跨账号串状态。250 收藏 -
Go正则编译成功却未命中时,先区分布尔判断与文本提取,再检查转义、换行、空匹配和整串约束,并为服务保留必要的诊断信息。250 收藏 -
Go 程序在精简容器中调用 x509.SystemCertPool 发现证书池为空或 HTTPS 校验失败时,先检查根证书目录和返回错误,再用 SSL_CERT_FILE、SSL_CERT_DIR 或镜像内的 CA 包修复。249 收藏 -
Pond 不设置 WithQueueSize 时使用默认无界任务队列,而 WithQueueSize(0) 会完全禁用队列。本文说明两者在任务积压、提交阻塞、TrySubmit 和 WithNonBlocking(true) 下的差异,并给出选择建议。249 收藏 -
解释 Go Flock 为什么不应在持锁期间删除锁文件:锁依附于已打开的文件对象,删除路径后后续进程可能打开新对象,从而绕过原来的互斥;文中给出安全释放和清理建议。249 收藏 -
gofpdf 调用 AddUTF8Font 成功后仍可能缺字。本文按字体目录、家族样式、字符覆盖和 UTF8CutFont 子集四层排查,并给出可复用的 Go 检查顺序。249 收藏 -
Go 子测试名称里的斜杠会参与分段匹配。本文用原创路由测试说明 -run 的逐段正则、空中间段、锚点与父测试执行规则,并给出名称回滚和叶子用例确认方法。249 收藏 -
Go encoding/csv 的 Reader.ReuseRecord 可以减少逐行读取时的分配,但后续 Read 可能复用上一条 record 的底层数组。本文按生命周期说明什么时候可以直接处理,什么时候必须复制整行或字段,避免保存结果后被下一行覆盖。249 收藏 -
Go pprof CPU profile 看不到业务函数时,先区分采样窗口没有业务热点,还是 profile 与分析端二进制没有正确配对。本文给出精确二进制、本地符号化、构建裁剪和复采样的排查路径。248 收藏