Go语言技术文章
-
fsnotify的一次保存可能产生多次通知。本文用单文件监听示例说明父目录过滤、静默窗口和单循环定时器,给出完整Go代码,并解释持续写入、慢处理、读取失败和通知丢失的限制。280 收藏 -
Go httptest.ResponseRecorder.Result 返回处理器执行完成后的 http.Response 快照。本文比较记录器字段和最终响应的差异,并给出状态码、响应头、响应体的稳定读取方式。280 收藏 -
围绕 Go encoding/base64 的 Strict() 说明尾部无效位为何被拒绝,区分字母表、填充与严格校验,并给出标准、URL 安全和无填充输入的选择方法。280 收藏 -
Golang · Go教程 | 4星期前 | go · 文件读取 · Go archive/zip Reader.RegisterDecompressor 自定义压缩方法 ZIP 解压 Go 文件读取
用 archive/zip.Reader.RegisterDecompressor 为指定 ZIP 压缩方法接入项目解压器,说明方法编号、Reader 级注册、条目读取和 Close 生命周期的边界。279 收藏 -
Go 测试本机通过而 CI 失败,通常是工具链、模块目录、构建条件或运行资源不同。本文用环境摘要、关闭缓存、结构化日志和测试门禁,把模糊失败变成可复现、可对比的问题。279 收藏 -
Go 1.27 调整了 go tool trace -http 只写端口时的默认监听范围。本文说明 :6060、localhost、127.0.0.1 和 0.0.0.0 的区别,并给出远程查看时更稳妥的 SSH 端口转发写法。279 收藏 -
Go go/format.Node 可以把 ast.File、声明、语句或表达式节点写成 gofmt 风格的 Go 源码。本文从 FileSet 和 parser 开始,说明完整文件与局部节点的差异、注释处理以及 AST 或 Writer 出错时的处理方式。279 收藏 -
Go 的 unicode/utf8.RuneStart 用来判断一个字节是否可能是 UTF-8 符文的首字节。本文从 ASCII、中文多字节编码和 10xxxxxx 后续字节切入,说明它的判断边界,以及为什么还要配合 DecodeRune 或 Valid。279 收藏 -
Go callgraph.DeleteSyntheticNodes 可以从调用图中移除不对应源语法的合成函数节点,并重建剩余节点之间的可达关系。本文说明它的调用时机、root 与包初始化函数的保留边界,以及不可达节点为何需要另行处理。279 收藏 -
Go compress/flate 的 Writer.Reset 可以在保留压缩级别和字典配置的前提下切换新的输出目标,适合批量处理多个独立数据块。本文说明 Close、Reset、错误处理和并发所有权的正确顺序。279 收藏 -
Go 通过 reflect.Value 反射写入整数时,不能只看输入是不是 int64,还要判断目标 Value 的 Kind 和可表示范围。本文说明 OverflowInt 的判断对象、整数边界、错误 Kind 处理和写入前检查方式。279 收藏 -
Go net.Resolver.LookupCNAME 返回跟随零个或多个 CNAME 后的最终规范主机名。本文说明如何用带超时的 Resolver 查询、区分名称变化与解析失败,并解释没有 CNAME 但有地址时为什么仍可能成功。279 收藏 -
Go database/sql.Rows 读取含 NULL 的多行结果时,不能把可空字段直接扫描到普通字符串或数字。本文用 sql.Null*、Scanner、any 和完整的 rows 生命周期示例,说明如何保留值与 Valid 状态,并处理动态列、提前退出和多结果集边界。279 收藏 -
从 HTTP 客户端接线、连接复用、超时作用范围和代理及自定义 TLS 分支定位 net.Dialer 看似不生效的原因,并提供客户端构造示例。279 收藏 -
Go x509.OID.Equal 比较的是对象标识符的组件序列,而不是展示文本。本文从 OIDFromInts 构造开始,说明相同组件、不同组件、空 OID 以及与 asn1.ObjectIdentifier 比较时的 API 边界。279 收藏