Go教程技术文章
-
Golang · Go教程 | 1小时前 | JSON · go · 泛型 · api设计 · encoding/json UnmarshalJSON 可选字段 零值 Go JSON处理 PATCH接口
Go 的 PATCH 接口如何区分字段缺失、null 与零值?本文用泛型 Optional[T] 保存 Set、Valid、Value 三态,完成解码、校验、更新与测试。306 收藏 -
讲清 Go tls.Config.KeyLogWriter 的 NSS key log 用法、文件权限、连接复用边界和调试后的清理方式,帮助定位 TLS 抓包解密问题并避免密钥输出进入生产环境。304 收藏 -
maps.Keys 返回 map 键的 iter.Seq,但官方明确说明迭代顺序未指定,而且不同调用之间不保证一致。本文解释常见误区,并给出普通有序键、结构体键、测试与接口输出的稳定排序写法。304 收藏 -
用一个小型 Go 页面服务演示 embed.FS、template.ParseFS 与 HTTP 输出如何串起来,并说明模板解析缓存、错误处理和验收方式。303 收藏 -
Go 处理 multipart.FileHeader 时,FileHeader 只描述上传文件,真正需要关闭的是 Open 返回的 multipart.File;如果 ParseMultipartForm 把文件落到磁盘,还要在表单生命周期结束时调用 RemoveAll 清理临时文件。303 收藏 -
Go 子测试调用 t.Parallel 后,输入、可变夹具和共享资源需要分别管理。本文用一个小型测试项目说明循环变量绑定、数据隔离、互斥锁、父级清理与 go test -race 的验收方法。303 收藏 -
Go archive/zip 报错不一定是整个 ZIP 都坏了。本文按中央目录、本地文件头和内容校验三个边界排查 ErrFormat、ErrChecksum,并给出生成端 Close 检查清单。303 收藏 -
Go 的 expvar 包能把计数器、状态值和自定义变量以 JSON 暴露在 /debug/vars。本文从一个请求计数器出发,讲清 Publish 注册、原子更新、并发遍历和生产环境隔离边界。302 收藏 -
errors.Join 可以把一次流程中的多条错误组成可检查的错误树,但日志展示、errors.Is 匹配和 errors.As 提取要分开设计。本文用批量校验示例说明组合、判断、展示与测试边界。301 收藏 -
Go 1.27 的 go/constant.StringLen 能在不完整构造字符串的情况下计算字符串常量长度。本文用最小示例说明它与 StringVal 的区别、UTF-8 字节边界、Unknown 行为、非字符串 panic 以及旧版本降级方式。301 收藏 -
Go text/template 遇到 map 缺字段时,可用 missingkey=default、zero 或 error 控制继续输出、返回零值或立即报错;本文说明三种规则的边界和 Execute 错误处理方式。301 收藏 -
Go strconv 转换失败后,用 errors.As 获取 *strconv.NumError,读取 Func、Num、Err 字段,并用 errors.Is 区分语法错误与范围错误。301 收藏 -
说明 Go gzip.Reader 默认如何连续读取拼接的 gzip 成员,以及如何用 Multistream(false) 和 Reset 保留成员边界并逐段处理。301 收藏 -
Go 泛型函数返回切片时,真正容易踩坑的不是类型参数,而是多个切片是否共享底层数组。本文用 append、cap 和复制策略拆开容量边界,并给出可验证的安全写法。300 收藏 -
Go 的 os.File.Sync 不是每次写文件都要调用的性能开关,而是把关键写入推进到存储设备可恢复边界的明确步骤。本文用临时文件、文件同步、原子替换和目录同步拆开它的适用场景、错误处理与验收方法。300 收藏