Go教程技术文章
-
Go 1.27 支持泛型方法,但类型参数写在接收者声明上,接口方法仍不能声明自己的类型参数。本文用一个可运行的小型数值容器,演示声明方式、调用边界、接口限制与 go test 验证。351 收藏 -
用 Go 标准库实现一个可取消的定时重试任务,覆盖 context 取消、指数退避、最大尝试次数、错误分类和优雅退出,给出可直接运行的最小示例与验收方法。349 收藏 -
测试 HTTP Handler 时,httptest.NewRequest 会按服务端请求语义填充 URL、Host、TLS 和 ContentLength。本文用路径、绝对 URL、HTTPS 与请求体四组样本,拆开检查请求目标边界,避免把客户端请求和服务端请求混在一起。349 收藏 -
Golang · Go教程 | 1星期前 | 标准库 · Go教程 · JSON编码 · Go nil指针 json.Marshal MarshalJSON encoding.TextMarshaler
当一个 Go 类型同时靠方法集实现文本编码或 JSON 编码时,json.Marshal 会先看 MarshalJSON,再考虑 encoding.TextMarshaler;nil 指针又有单独的保护规则。本文用最小示例拆开调用优先级、指针接收者和嵌套字段边界。349 收藏 -
用 Go crypto/tls 的 GetCertificate 配合 atomic.Pointer 保存不可变证书快照,实现不改动 tls.Config 的最小化证书轮换,并厘清并发读取、加载失败和旧连接的边界。349 收藏 -
用 Go runtime.SetFinalizer 说明终结器的触发条件、KeepAlive 的必要性、显式 Close 与终结器兜底的边界,并给出可运行的资源生命周期示例。348 收藏 -
bytes.FieldsSeq 从 Go 1.24 开始提供按 Unicode 空白切分字节串的单次迭代器。本文对比 bytes.Fields,解释 subslice、空白边界、迭代提前停止和底层字节切片生命周期。348 收藏 -
通过一个后端服务调用第三方接口的案例,演示 Go context.WithTimeout、defer cancel、HTTP 请求取消、错误判断和常见坑,避免接口一直等待。346 收藏 -
从滚动日志窗口的实际场景出发,解释 slices.Clip 如何把切片容量收紧到长度,说明它与 slices.Clone、底层数组和 GC 回收之间的边界。346 收藏 -
Go 的 Cmd.WaitDelay 用来限制子进程退出后 I/O 管道迟迟不关闭造成的 Wait 阻塞。本文用一个可运行的小实验拆开超时、管道关闭和退出状态的关系,并给出安全的错误判断方式。346 收藏 -
用 Go 和原生前端表单搭一套可恢复的重复提交处理:客户端按钮状态负责体验,服务端幂等键负责最终一致,超时后通过查询接口确认结果。346 收藏 -
Go 1.27 新增 strings.CutLast,适合把最后一次分隔符查找与切分写成一次调用。本文用路径、域名和空结果示例说明替代边界、兼容范围与测试方法。346 收藏 -
接口收到一段无法解析的 JSON 时,json.Decoder.InputOffset 可以提供稳定的字节位置。本文用一个请求体校验器串起 Decode、InputOffset、错误截取和边界保护。344 收藏 -
Go 服务需要在不重启进程的情况下更新限流阈值、灰度开关或下游地址时,atomic.Value、RWMutex 和 channel 归属各有适用边界。本文用一个可运行的配置热加载示例比较三种方案,并给出选择规则、校验点和回滚做法。343 收藏 -
把请求参数放进 Go map 再写入缓存时,真正容易出错的是边界校验、键的稳定性和过期清理。本文用一个商品筛选缓存场景,串起输入校验、键生成、并发读写与回收验证。343 收藏