Go教程技术文章
-
Go 子测试调用 t.Parallel 后,输入、可变夹具和共享资源需要分别管理。本文用一个小型测试项目说明循环变量绑定、数据隔离、互斥锁、父级清理与 go test -race 的验收方法。303 收藏 -
Go archive/zip 报错不一定是整个 ZIP 都坏了。本文按中央目录、本地文件头和内容校验三个边界排查 ErrFormat、ErrChecksum,并给出生成端 Close 检查清单。303 收藏 -
Go 的 expvar 包能把计数器、状态值和自定义变量以 JSON 暴露在 /debug/vars。本文从一个请求计数器出发,讲清 Publish 注册、原子更新、并发遍历和生产环境隔离边界。302 收藏 -
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 的 os.File.Sync 不是每次写文件都要调用的性能开关,而是把关键写入推进到存储设备可恢复边界的明确步骤。本文用临时文件、文件同步、原子替换和目录同步拆开它的适用场景、错误处理与验收方法。300 收藏 -
用 Go archive/tar Reader.Next 读取带 PAX 稀疏扩展的归档,核对 Header.Size、空洞补零、PAXRecords 与遍历边界,并给出可复现的验收方法。299 收藏 -
filepath.Rel 报错通常不是目标文件不存在,而是 basePath 和 targPath 不在同一个路径坐标系。本文用 Go 示例拆解绝对相对混用、Windows 卷名、UNC 路径和 URL 误用,并给出可复用的错误处理封装。299 收藏 -
io.LimitReader 限制的是包装 Reader 在整个读取过程中的最大字节数,不是每次 Read 的缓冲区大小。本文用原创 Go 示例说明如何设置上限、正确处理 n 与 io.EOF,以及如何用 limit+1 判断源内容是否超限。299 收藏 -
用 Go signal.NotifyContext 把 SIGINT、SIGTERM 转成统一的 Context 取消,说明 worker、HTTP 服务和外部资源如何优雅收尾,以及 stop 的注销边界。299 收藏 -
sync.Map.Range 适合做并发遍历,但不能当作一致性快照。本文用一个在线会话统计场景拆开 Range 的遍历语义、并发写入影响、O(N) 成本,并给出快照统计与可控停止的实现边界。298 收藏 -
Go 1.25 为 hash 包补充 XOF 接口。本文用 SHAKE 示例比较固定长度摘要与可扩展输出,说明 hash.Hash、hash.XOF、Read 和 Reset 的选择边界。298 收藏 -
使用 golang.org/x/net/html 解析网页中的 a[href],再用 net/url 按页面基准地址补全相对链接,并说明片段、特殊 scheme 与外链控制的处理边界。298 收藏 -
Go 的 http.Client 默认不会替你保存登录后的 Cookie。为 Client 注入 net/http/cookiejar 的 Jar,并复用同一个 Client,登录响应里的 Set-Cookie 才能在后续匹配请求中自动带回。298 收藏