Go语言技术文章
-
Go io.ReadAll 配合 LimitReader 时,应读取上限加一字节识别超限。本文说明 EOF 语义、受限读取封装、错误优先级及资源关闭责任。176 收藏 -
Golang · Go教程 | 21小时前 | 标准库 · 缓存 · HTTP · Go教程 · Go http.ServeContent Last-Modified If-Modified-Since ModTime
Go http.ServeContent 的 modtime 不只是一个参数:它会影响 Last-Modified 和 If-Modified-Since 的条件请求判断。本文从缓存未命中的排查场景出发,讲清零时间、秒级精度、304 响应与文件修改时间的正确衔接。323 收藏 -
Go 的 os.File.Readdirnames 适合把目录名称按固定批量读取。本文说明目录游标如何推进、怎样处理部分结果与 io.EOF,以及为什么它不会递归或排序。271 收藏 -
Golang · Go教程 | 21小时前 | 标准库 · HTTP · 超时控制 · Go教程 · 工程实践 · Go 上下文取消 handler HTTP超时 http.TimeoutHandler
http.TimeoutHandler 可以为单个 Go HTTP 处理器设置时间上限,超时返回 503 并让后续写入得到 ErrHandlerTimeout。本文说明如何配合请求上下文使用,以及它在流式响应、连接接管和服务级超时中的边界。403 收藏 -
Go 1.22 之后,http.ServeMux 用模式覆盖的请求集合判断优先级,而不是按注册顺序或通配符名称决定。本文比较静态路径、单段通配、剩余路径通配、方法和主机,并说明如何识别冲突模式。400 收藏 -
Go 1.27 的 encoding/json/jsontext 提供面向 JSON 语法的 Decoder 和 Token。本文从最小读取示例、对象数组边界、跳过值和 Token 生命周期四个方面说明怎样按 token 处理 JSON。271 收藏 -
Go cmp.Or 可以从多个同类型候选值中返回第一个非零值,适合表达环境变量、配置文件和代码默认值的优先级。本文拆开零值约定、comparable 类型限制、参数提前求值和配置流水线中的错误边界。216 收藏 -
Go crypto/mlkem 用 ML-KEM-768 生成密钥、封装共享秘密与解封装密文。通过原创函数示例区分公开材料和秘密材料,解释错误处理、返回顺序及身份认证边界。406 收藏 -
Go 1.24 的 runtime.AddCleanup 可以为对象注册异步清理回调。本文从资源包装场景出发,说明参数关系、回调触发条件、KeepAlive、Cleanup.Stop 以及显式 Close 的边界。304 收藏 -
Go 1.23 引入的 unique.Make 可以把可比较值规范化为 Handle。本文从最小写法、map 去重、类型约束和生命周期四个方面说明如何正确复用唯一实例。329 收藏 -
Go weak.Pointer 不会阻止对象被垃圾回收。本文用两个小例子说明 weak.Make、Value、nil 判断和 runtime.KeepAlive 的生命周期边界,并区分弱引用缓存与确定性资源释放。175 收藏 -
Go iter.Pull 把 iter.Seq 的推送式遍历转换为 next 拉取,并返回 stop 管理提前退出。本文用两个序列的并行读取说明 next、ok 和 defer stop 的职责边界。300 收藏 -
Go iter.Seq 用统一接口组合生成、筛选和转换,示例说明消费时计算、提前停止、可重入源与结果物化的取舍,避免把惰性遍历误当作缓存、快照或异步任务。377 收藏 -
strconv.ParseBool 只负责标准布尔文本,配置中的 yes/no 需要在入口处做显式兼容映射。本文说明接受范围、错误边界和一段可复用的 Go 配置解析写法。141 收藏 -
Go 1.23 起可以用 maps.Values 提取 map 的值迭代器,再按需用 slices.Collect 收集成切片或用 slices.Sorted 建立稳定顺序。本文说明直接遍历、收集、排序、重复值和旧版本兼容边界。301 收藏