#Go
共 13 篇文章
Go Body.Close 报 EOF
Go 1.27.0 的服务端 Request.Body.Close 在部分正文排空后可能返回正常 EOF,导致清理辅助函数把请求改成失败。1.27.1 已修复,需要重新构建应用。
Go 事务开始后 Prepare 卡住:连接池只剩事务占用的连接
Go 事务占用唯一连接后,通过 DB.Prepare 再取连接会一直等待。使用事务上的 PrepareContext,并核对懒缓存、取消和提交结果。
Go JSON 键名变了
Go 1.27 的旧 JSON API 可能调用命名字符串 map 键的 MarshalText,改变输出键名。1.27.2 修复了直接 string 类键,指针与接口键需要另行验收。
Go 给 map 中结构体的切片字段赋值时报 cannot assign to struct field
Go 的 map 元素为结构体值时,不能直接给其字段赋值。取出整个结构体修改后写回,或在明确引用语义后改用指针,同时检查缺失键和 make 容量提示导致的初始化遗漏。
Go json.Marshal 的 omitempty 没有省略零值结构体字段
encoding/json 的 omitempty 不省略值结构体。用 nil 指针表示缺失,或在 Go 1.24 起使用 omitzero,并核对空对象与缺失键的接口差异。
Go 向结构体的 map 字段写入时出现 assignment to entry in nil map
结构体零值中的 map 仍为 nil,读取正常不代表能够写入。在首次写入前条件初始化,保留已有键,并区分接收者为空与并发访问问题。
Go 把 JSON 解码到 interface 后,整数 id 变成 float64
encoding/json 默认把接口中的数字解码为 float64。结构已知时指定 int64 字段,动态结构则使用 UseNumber,并检查数字读取和转换错误。
Go 重装后仍报 toolchain not available:检查持久化 GOTOOLCHAIN
Go 重装后仍请求不存在的 go1.22 工具链,可检查用户 GOENV 中持久化的 GOTOOLCHAIN。只撤回错误设置,保留模块要求、其他配置与下载校验。
Go 结构体有数据,json.Marshal 却返回空对象 {}
Go 结构体字段未导出时,JSON 标签无法让 encoding/json 编码这些字段。用导出字段配合小写标签,并排除省略规则、嵌入字段冲突和自定义编码方法。


