Go语言技术文章
-
解释 Go interface 装入 nil 指针后仍不等于 nil 的原因,拆开动态类型和值的比较规则,并给出 error 返回、类型断言与反射边界的实用处理方式。484 收藏 -
Go 动态拼接正则表达式时,先用 regexp.QuoteMeta 转义用户输入,才能让点号、括号、加号等字符按字面匹配;本文同时说明模式结构、Compile 错误和替换模板的边界。484 收藏 -
Go 服务端中间件读取 http.Request Body 后,下游为什么只能拿到空内容?关键在于 Body 是一次性读取流,读取后要用缓存字节重建 Request.Body,并同时控制请求体大小与错误分支。484 收藏 -
Golang · Go教程 | 1个月前 | 性能优化 · Go教程 · net/http · 兼容性 · Preload Go net/http ErrNotSupported http.Pusher HTTP/2 Server Push Early Hints
Go 的 http.Pusher 仍可探测,但 Push 在客户端禁用或连接不支持时会返回 ErrNotSupported。更稳的资源加载方案是以最终 HTML 为主,按首屏预算组合 preload 与 103 Early Hints,把 Push 降级为可选加速。484 收藏 -
区分Go http.Client.Timeout与Transport阶段超时,明确拨号、TLS、响应头、响应体和业务代码的时间边界。484 收藏 -
调用泛型函数时,只要普通实参或明确的目标函数类型能唯一推断缺失类型参数,通常可以省略;类型参数只出现在结果中、函数值没有目标类型、nil 等实参不提供类型信息时,就要显式填写。泛型类型则始终需要显式类型实参。484 收藏 -
Timer Reset 后立刻超时,通常与旧版缓冲计时器通道中的过期值有关。本文对照 Go 1.23 前后语义,给出 chan-based Timer 的复用写法、AfterFunc 边界、版本判断和回退检查清单。484 收藏 -
Go 的 crypto/mlkem 把 ML-KEM 密钥分成私有的 DecapsulationKey 和公开的 EncapsulationKey。本文说明 GenerateKey、Bytes、New*Key 的对应关系,并整理 768/1024 参数集的序列化长度与工程基线。484 收藏 -
Go http.Client 可以在 CheckRedirect 中读取 via 请求链并设置跳转上限。本文区分重定向次数与请求总数,说明普通错误和 http.ErrUseLastResponse 对 Response、Body 和 url.Error 的不同影响。484 收藏 -
Go json.Decoder 可能提前从底层 Reader 读取数据,Decode 返回后仍有一部分字节停留在内部缓冲。本文说明 Buffered 的准确边界、如何和底层 Reader 余量拼接,以及为什么下一次 Decode 或 Token 后不能继续依赖旧 reader。484 收藏 -
Golang · Go问答 | 1星期前 | 标准库 · 类型转换 · Go问答 · JSON Go encoding/json UseNumber Decoder json.Number UnmarshalTypeError
Go JSON 使用 Decoder.UseNumber 后,转换失败通常不是 UseNumber 失效,而是 json.Number 与目标字段语义不匹配。本文从原始字面量、Int64/Float64 转换和 UnmarshalTypeError 字段路径入手,定位格式、范围与协议问题。484 收藏 -
Go 1.27 的 go fix 新增 slicesbackward modernizer,可把符合条件的手写切片反向循环迁移到 slices.Backward。本文说明如何预览变更、何时保留索引变量,以及生成文件和构建标签带来的边界。484 收藏 -
StringLen 可避免为查询长度而展开完整字符串,但不保证无限输入或固定耗时。本文说明 int64、Unknown、panic 与字节单位边界,给出长度展示组件及分阶段资源预算建议。484 收藏 -
Go 1.23 的 unique.Make 可以把可比较值规范化为可廉价比较的 Handle,但它不是无条件的字符串驻留池。本文从标签解析缓存场景出发,拆开 Make、Handle、Value 和垃圾回收之间的关系,说明何时值得用、如何保留句柄,以及为什么不能只存 Value。483 收藏 -
strings.Builder 适合高效拼接字符串,但写入后复制会触发运行时检查。本文从零值使用、复制边界和返回字符串的别名风险说明正确写法。483 收藏