Go语言技术文章
-
Go 自定义 Transport 后 HTTP/2 不再生效,常见原因不是服务端突然关闭,而是 Dial、DialContext、DialTLS 或 TLSClientConfig 触发了保守默认。本文给出 ForceAttemptHTTP2、Protocols、ALPN 与连接复用的排查顺序。250 收藏 -
Go 用 UTF32 配置小端解码器,再通过 transform.NewReader 转成 UTF-8。本文说明 IgnoreBOM、UseBOM、ExpectBOM 的区别,以及流式处理中的资源归属和部分输出。250 收藏 -
rtreego 最近邻比较查询点到 Bounds 矩形的最短欧氏距离。通过两个矩形说明它与中心距离、真实几何距离的区别,以及候选重排和返回值的局限。250 收藏 -
Go encoding/gob 传输接口字段时,需要用 gob.Register 注册接口里实际出现的具体类型,并在解码侧完成对应注册。本文用一个包含接口字段的消息结构体说明注册、编码、解码和常见失败边界。250 收藏 -
Go 类型断言的单值写法在目标类型不匹配时会 panic。本文用 comma-ok 形式、nil 边界和 type switch,说明怎样安全处理接口中的动态类型。250 收藏 -
澄清 http.Cookie 无需关闭,按响应体、Transport、CookieJar、业务缓存和服务端会话区分资源生命周期,并给出一次请求内关闭响应体的写法。250 收藏 -
通过TicketID实现fmt.Formatter,复用宽度与精度,区分字符串展示和数值格式,并说明递归、Stringer优先级与采用边界。250 收藏 -
用不连接数据库的最小示例区分 NULL、空字符串与普通文本,解释 sql.NullString.Valid、业务 JSON 映射及查询无行和扫描错误的处理。250 收藏 -
Go 中两个声明里的 T 即使名称和约束都相同,也属于不同的类型参数对象。本文用 go/types.TypeParam、Obj、Constraint、Index 和 Identical 对比常见判断方式,说明源码分析时为什么必须保留声明作用域。250 收藏 -
Go ast.FilterFile 会原地裁剪 *ast.File,按 Filter 回调筛选顶层声明和相关字段。本文说明 ast.IsExported 的用法、返回值、导入移除、注释保留及重复处理边界。250 收藏 -
本文围绕 encoding/csv Reader.InputOffset 说明当前输入流字节偏移的含义,给出成功读取后保存进度、定位解析错误以及从记录边界继续读取的简洁写法。250 收藏 -
Go 客户端使用独立 CookieJar 管理账号会话,结合域名、路径和 PublicSuffixList 判断 Cookie 隔离边界,避免跨账号串状态。250 收藏 -
Go正则编译成功却未命中时,先区分布尔判断与文本提取,再检查转义、换行、空匹配和整串约束,并为服务保留必要的诊断信息。250 收藏 -
Go 程序在精简容器中调用 x509.SystemCertPool 发现证书池为空或 HTTPS 校验失败时,先检查根证书目录和返回错误,再用 SSL_CERT_FILE、SSL_CERT_DIR 或镜像内的 CA 包修复。249 收藏 -
Golang · Go教程 | 3星期前 | 错误处理 · Go教程 · database/sql · Go commit 事务 rollback database/sql sql.Tx BeginTx
Go database/sql 事务最容易漏掉的是提前返回路径:某个 SQL、业务校验或 context 取消后,如果没有统一 Rollback,事务就可能长期占用连接或留下不完整的控制流。本文用 defer、panic 保护和 BeginTx context 封装一个只在成功出口 Commit 的事务 helper,并用路径指标检查覆盖范围。249 收藏