Go教程技术文章
-
Go 批量任务不要只返回一个模糊错误:用结构化失败记录保留输入编号与阶段,再用 errors.Join 汇总整批失败状态,并通过 errors.Is、errors.As 支持分类判断和重试。403 收藏 -
用 go fix modernizers 批量迁移旧标准库写法,先预览差异,再按 fixer、Go 版本和构建平台执行,并用测试确认语义边界。403 收藏 -
bytes.Reader.Seek 判断的是最终绝对位置。定位到数据开头之前会返回 0 和 negative position 错误,原读取位置保持不变;越过末尾则可成功,但后续读取会得到 EOF。403 收藏 -
围绕 filepath.Rel 计算文件相对路径时最容易出现的目录基准误用,说明 basePath 的含义、跨目录返回 .. 的边界、相对绝对路径错误,以及输出到 URL 或清单时的分隔符转换。403 收藏 -
Go billy 的 Capabilities 返回文件系统能力位,CapabilityCheck 可判断一组操作是否同时被支持。本文说明位掩码读取、能力声明与底层存储状态的区别,以及写入、锁定和同步前的分支设计。403 收藏 -
Go 的 CookieJar 通过 http.Client 管理跨请求会话状态。本文用标准库示例说明如何保存 Set-Cookie、按 URL 自动发送 Cookie,并处理域名、路径、并发和安全边界。403 收藏 -
Go 基准的 ReportMetric 只报告传入的数值,不会自动按 /op 归一化。本文用批处理示例说明总量除以 b.N、固定单次值、单位约束、重复覆盖、计时重置与默认指标的关系。403 收藏 -
Golang · Go教程 | 1星期前 | 标准库 · HTTP · 超时控制 · Go教程 · 工程实践 · Go 上下文取消 handler HTTP超时 http.TimeoutHandler
http.TimeoutHandler 可以为单个 Go HTTP 处理器设置时间上限,超时返回 503 并让后续写入得到 ErrHandlerTimeout。本文说明如何配合请求上下文使用,以及它在流式响应、连接接管和服务级超时中的边界。403 收藏 -
用Go ConstantTimeCompare比较固定长度密钥材料,说明整数返回值、长度提前返回、差异位置样本和性能观察的适用边界。403 收藏 -
用 go tool pprof 的 sample_index 切换内存 profile 的采样值,分清 inuse_space、inuse_objects、alloc_space 与 alloc_objects,并说明交互命令、命令行参数和索引边界。403 收藏 -
Go 的 regexp.Expand 和 ExpandString 可以把正则捕获结果写入模板。本文从命名捕获组、模板边界和字节切片复用出发,给出可验收的替换写法,并说明空捕获组与并发使用时的注意点。402 收藏 -
Go 1.26 迁移 B.Loop 基准时,重点不是把 b.N 换成一个新方法名,而是确认计时边界、函数调用保活、内联变化和死代码消除没有改变被测对象。402 收藏 -
Go 统计整数二进制中 1 的数量,直接使用 math/bits 的 OnesCount 系列即可。本文按 uint、uint32、uint64 的宽度说明函数选择,演示切片汇总,并解释有符号整数转换时的补码边界。402 收藏 -
Go 的 os.ReadDir 函数会按文件名排序,而 (*os.File).ReadDir 返回目录顺序。本文用最小示例说明两者差异,并给出目录批处理和测试中保持结果稳定的写法。402 收藏 -
Go 1.27 支持具体类型声明泛型方法。给 Page[T] 增加 Map[U] 后,可把分页元素从模型类型映射为 DTO 类型,编译器负责推断与检查,同时统一保留总数、页码和页大小,并把转换错误明确返回。402 收藏