Go教程技术文章
-
排查 Go context.WithDeadline 提前结束的问题,理解父级截止时间只会更早不会更晚的继承规则,并用剩余预算、HTTP 超时和测试日志完成可复现核对。228 收藏 -
用 Go net/url.URL.JoinPath 处理接口基础地址与资源路径的拼接,说明重复斜杠、绝对路径片段、查询参数和转义边界,给出可测试的请求地址写法。248 收藏 -
用一个可运行的小例子说明 Go embed.FS 读取嵌套资源时的路径规则、fs.ValidPath 校验边界与错误处理方式,避免把磁盘路径习惯带进嵌入文件系统。374 收藏 -
支付、下单或重试场景里,Go HTTP API 需要区分同一请求的安全重放与参数冲突。本文从调用方体验出发,设计 Idempotency-Key 的语义、存储状态、过期策略和错误响应,并给出可运行的 Go 示例。317 收藏 -
Go 泛型约束既能描述可参与运算的类型集合,也能要求调用方具备指定方法。本文用一个带 String 方法的泛型容器,拆开接口组合、~ 底层类型和方法集的边界,解释常见 cannot use 报错该怎么定位。245 收藏 -
Go 1.21 引入的 clear 可以快速清空 map,但它解决的是元素清理,不是所有内存都立刻归还。本文用临时缓存场景拆解 clear、重新 make 和逐项删除的差别,再用基准与运行时指标确认容量复用是否真的适合当前代码。211 收藏 -
Go 编译时出现 import cycle not allowed,通常不是某一行语法错,而是包依赖回到了起点。本文用 go list 和最小重构示例定位环路,说明如何拆出接口或共享类型,并用测试和依赖检查确认修复没有引入新问题。379 收藏 -
Go 服务做配置热更新时,真正要解决的不是重新读取文件,而是让新旧版本切换可验证、失败可回滚。本文用原子替换、版本号校验和恢复指针搭出一条可落地的更新流水线。378 收藏 -
os.CopyFS 适合把一棵目录树复制到目标目录,但符号链接、目标已存在和中途失败会改变结果。本文用可运行示例拆开复制边界、错误判断和失败后的清理策略,帮助你避免把链接误当成普通文件。191 收藏 -
用 Go 标准库 net/netip 解析 CIDR 网段,区分掩码规范化与原始配置,演示 Prefix.Contains 的边界判断,并给出配置文件校验和错误处理方式。190 收藏 -
Go 的 sync/atomic.Uint64 适合做高并发下的轻量计数,但 Add、Load、Swap 的读写边界和溢出语义不能靠直觉处理。本文从请求统计场景出发,给出计数器封装、快照读取、并发测试和超过 uint64 上限后的处理策略。466 收藏 -
用 Go 标准库 netip.Prefix 判断 IP 是否属于网段,拆开 ParsePrefix、Masked、Contains 和 IPv4/IPv6 边界,给出可直接运行的校验代码。146 收藏 -
Golang · Go教程 | 3天前 | 日志 · 标准库 · time · go · Go时间格式化 encoding.TextAppender Go time.Time.AppendText RFC3339Nano
Go 1.24 为 time.Time 增加 AppendText,可把 RFC 3339 纳秒时间直接追加到已有字节切片。本文对比 Format 与 MarshalText,说明错误返回、时区偏移和日志字段复用的边界。113 收藏 -
Go 的 http.Request.Clone 会复制请求的大部分可变结构并替换 context,但 Body 仍是浅拷贝。本文用转发请求和超时取消两个场景,核对 Header、URL、Body 与 context 的安全边界。340 收藏 -
Go 1.27 新增 strings.CutLast,适合把最后一次分隔符查找与切分写成一次调用。本文用路径、域名和空结果示例说明替代边界、兼容范围与测试方法。346 收藏