Go教程技术文章
-
Go unique.Handle[T].Value() 会返回创建句柄的 T 值浅拷贝。本文从 Go 1.23 引入的 unique 包出发,说明如何取回已驻留值、比较等值句柄,以及迁移时需要注意的可比较约束和生命周期边界。176 收藏 -
Cmd.Environ 返回命令按当前配置运行时使用的环境副本。本文用一个小型命令行示例说明 Dir、Env、PWD、重复键和执行结果之间的关系。176 收藏 -
Go time.Time 默认通过 MarshalJSON 输出带引号的 RFC 3339 时间字符串,并保留有意义的子秒精度。本文说明纳秒尾随零、时区偏移、Location 名称、单调时钟、零值和错误边界,帮助接口设计避免误判精度丢失。176 收藏 -
Golang · Go教程 | 1星期前 | 并发 · errgroup · goroutine · 错误处理 · go · Go 并发控制 SetLimit x/sync/errgroup TryGo
Go x/sync/errgroup.TryGo 会在并发额度未满时启动任务,额度已满时立即返回 false。本文用 SetLimit、TryGo 和 Wait 说明非阻塞提交、拒绝分支、错误回收与 Context 取消的边界。176 收藏 -
Golang · Go教程 | 1星期前 | 标准库 · Go教程 · net/http · Go net/http http/2 ResponseController Hijack ErrNotSupported HTTP/1.x
Go ResponseController.Hijack 需要按调用结果判断当前 ResponseWriter 是否支持连接接管。本文区分 HTTP/1.x、HTTP/2 与包装器能力,说明 ErrNotSupported 的降级处理,以及接管后 net.Conn、缓冲读写器和 Request.Body 的责任边界。176 收藏 -
Go 读取 ZIP 条目大小时,应优先使用 archive/zip.FileHeader.UncompressedSize64。本文说明它与旧的 UncompressedSize 字段有什么关系,为什么 ZIP64 条目必须依赖 64 位字段,以及怎样在打开内容流前把原始大小用于配额、内存和解压边界判断。176 收藏 -
Go testing.F可通过固定边界种子建立可重复的基础语料。本文用非空行计数示例说明Add类型匹配、目标独立性与局部状态,并区分减少业务临时对象和模糊测试框架开销。176 收藏 -
Go AST 改写后要恢复文件注释列表,应在解析时用 ParseComments 创建 CommentMap,替换节点时调用 Update,改写完成后用 Filter 清理已删除节点,最后用 Comments 按源码顺序取得有效注释组。176 收藏 -
Go 的 io.TeeReader 可以在读取输入流的同时,把已经读到的字节同步写入另一个 io.Writer。本文用 bytes.Buffer 和 io.Copy 说明它的调用关系、无缓冲特性、错误传播方式,以及只复制实际消费数据时的边界。175 收藏 -
Go weak.Pointer 不会阻止对象被垃圾回收。本文用两个小例子说明 weak.Make、Value、nil 判断和 runtime.KeepAlive 的生命周期边界,并区分弱引用缓存与确定性资源释放。175 收藏 -
用 http.NewServeMux 创建独立路由表,注册固定路径和 Go 1.22+ 方法模式,再把 mux 显式交给 http.Server,避免测试或多服务场景误用全局 DefaultServeMux。175 收藏 -
Go encoding/binary.Decode 适合把固定布局的字节切片按 LittleEndian 或 BigEndian 解析到结构体。本文说明字段限制、返回字节数、缓冲区不足,以及 Decode、Read、Encode 的选择。175 收藏 -
用 Go iter.Pull 把 iter.Seq 转成 next/stop 逐项读取,区分零值与结束信号,处理空输入和提前退出,并说明业务错误如何保持清晰边界。175 收藏 -
Go 随机测试失败后,保存 shuffle 种子并重放原测试集合。用双测试小项目解释共享状态与独立实例修复,补充 CI 日志记录和并发复现边界。174 收藏 -
Go x/image/riff 的 NewReader 先检查 RIFF 头,再返回四字节 form type 和 chunk Reader。本文说明 AVI、WAVE 等表单类型的识别方式,以及流式读取和错误边界。174 收藏