Go教程技术文章
-
Go slices.Delete 会原地移动元素并清零被移出范围的尾部槽位,但切片容量仍可能保留底层数组。本文用指针元素说明删除后的引用清理、垃圾回收边界和批量删除策略。316 收藏 -
讲清 Go net/http CrossOriginProtection 如何放进已有恢复、日志、认证和路由中间件链,配置可信 Origin、自定义 403 拒绝处理和精确例外,并区分它与 CORS 的职责。316 收藏 -
围绕 testing.F、f.Add、f.Fuzz 和 testdata/fuzz,说明 Go fuzz 测试怎样限制参数边界、控制探索预算,并把失败输入沉淀为普通 go test 可复现的回归样例。316 收藏 -
Go 的 math.Frexp 可以把 float64 拆成归一化尾数和二进制指数,math.Ldexp 再将两者重建为浮点数。本文给出最小写法、配对关系和特殊值边界。316 收藏 -
Go testing/synctest.Sleep 把虚拟时间推进和气泡内等待稳定合并到一起。本文用一个时间驱动的 channel 示例,说明怎样在 synctest.Test 中快速测试延迟逻辑、避免同一时长竞争,并处理调用边界。316 收藏 -
Go regexp.Regexp.MatchReader 接收 io.RuneReader,可以在不先拼接完整字符串的情况下判断流式文本是否包含匹配。本文用 bufio.Reader 说明输入适配、编译错误、布尔结果和 Reader 消费边界。316 收藏 -
通过自动准备临时文件的Go示例,区分Glob有匹配、无匹配与模式语法错误,说明空切片处理和文件系统错误被忽略的限制。316 收藏 -
Zerolog 可以通过 Logger.With 创建带固定业务字段的子日志器。本文用 service、component 与 request_id 区分不同生命周期,说明怎样绑定、注入和复查字段边界,避免共享日志器被动态字段污染。316 收藏 -
用 Go 1.23 的 iter.Pull 把 push-style 迭代器接入一个可复用的 TakeUntil 工具,讲清 next、stop、提前退出和并发边界。316 收藏 -
用 go/types 做静态分析时,Selection.Index 保存的是从接收类型到字段的索引链。本文用两层嵌入结构演示如何还原 Meta.Base.ID 路径,并说明指针、命名类型、FieldVal 与边界错误的处理方式。316 收藏 -
Golang · Go教程 | 2个月前 | 标准库 · 文件读取 · Go教程 · 错误排查 · Go ReadAll read encoding/csv FieldsPerRecord ErrFieldCount
Go encoding/csv 的列数错误不是等到 ReadAll 结束才检查,而是在读取具体记录时由 Read 逻辑发现。本文对比 Read 与 ReadAll 的返回值、FieldsPerRecord 三种语义,并给出定位故障行的处理方式。315 收藏 -
用 Go 的 reflect.VisibleFields 和 StructTag.Lookup 生成字段映射,再以 reflect.Type 为键缓存不可变元数据。文章给出完整实现、并发取舍、嵌入字段处理和实际取值示例。315 收藏 -
讲解如何把 Go 旧式 b.N 基准测试迁移到 testing.B.Loop,处理一次性准备、循环内输入重置、计时器控制、自定义指标和结果对比,并说明不能混用的边界。315 收藏 -
通过FileInfoHeader与SetMode保存Go ZIP文件头的权限信息,说明CreateHeader写入、归档关闭、目录模式和跨平台恢复的区别,并给出普通文件打包示例。315 收藏 -
Go io.Pipe 是同步且无内部缓冲的管道,一次 Write 可能由一次或多次 Read 完成。本文用读缓冲区大小、n 返回值和阻塞条件说明怎样判断读写边界。315 收藏