Go语言技术文章
-
Go interface 存入零值结构体后为什么仍不等于 nil?关键在接口值同时携带动态类型和动态值。本文对比零值结构体、nil 指针和 nil interface,给出类型断言与反射判断的安全边界。212 收藏 -
解释 Go fs.Glob 在 ReadDir 回退和 GlobFS 委托路径中如何处理 I/O 错误,并给出使用 WalkDir 保留底层错误、避免把读取失败误判为无匹配的完整写法。212 收藏 -
Golang · Go教程 | 3天前 | JSON · 时间处理 · Go教程 · database/sql · 后端开发 · RFC3339 Go时间序列化 time.Duration JSON 数据库时间戳 sql.NullTime
用一个小型任务接口统一 Go 业务时间、Duration 与数据库可空时间戳,给出自定义 JSON 类型、仓储映射和往返测试。212 收藏 -
多租户服务若共享可变 x509.CertPool,容易把一个租户的私有 CA 扩散给其他租户。本文通过故障复盘给出独立根池、TLS 绑定、轮换与测试方案。212 收藏 -
Go 的 gzip.Writer 会把 Header.ModTime 写进 gzip 头部 MTIME。固定 UTC 秒级时间,并在 Write、Flush 或 Close 之前设置,才能避免归档因当前时间变化而产生不稳定字节。211 收藏 -
Go pprof 的 alloc_space 看累计分配,inuse_space 看最近一次 GC 后仍存活的内存。同一调用栈排名相反并不矛盾,关键是先确认对象生命周期,再用两个视图交叉判断。211 收藏 -
Go 的 cookiejar.Options 可通过 PublicSuffixList 限制 Cookie 的域作用范围。本文讲清 publicsuffix.List 接入方式、nil 配置风险、自定义接口约束与公网客户端实践。211 收藏 -
解释 Go 实验性 runtime/secret.Do 为什么不能让从回调返回的 string 自动被擦除,并给出把敏感计算收口、由调用者预分配结果空间和发布检查的做法。211 收藏 -
Go trace 页面打不开,先检查 trace.out 是否仍在写入,再确认 trace.Stop、文件 Close 和进程退出顺序,最后排除浏览器与旧格式兼容问题。210 收藏 -
Go 中 defer 后修改变量却打印旧值,通常是因为参数在 defer 登记时已经求值。本文用最小示例区分参数快照与闭包读取,并给出日志、循环和命名返回值的选择方法。210 收藏 -
解释 Go TCPConn.CloseWrite 为什么只关闭本地发送方向,拆解已写入数据、FIN、服务端读取与 io.EOF 的关系,并给出发送完请求后继续读取响应的示例。210 收藏 -
Go copy 支持源切片与目的切片重叠。本文用区间和示例说明复制方向、返回值、插入删除写法,以及长度、容量和并发边界。210 收藏 -
Go net/http 中 204 No Content 的正确用法:服务端不要写正文,客户端按状态码决定是否解码响应体。210 收藏 -
Go 1.24 引入 runtime.AddCleanup 后,AddCleanup 与 SetFinalizer 的对象约束、执行顺序、循环引用和取消方式都不同。本文用资源清理场景给出选择和迁移清单。210 收藏 -
Go url.Values 的空值并不等于没有参数:空字符串会编码成 key=,空切片不会输出该键,重复值会按添加顺序展开。本文用 Encode 和 ParseQuery 对照说明三种状态,并给出 Set、Add、Del 的选择边界。209 收藏