Go语言技术文章
-
使用 Go base64.NewEncoder 和 io.Copy 流式编码文件,避免一次性读取大文件,并正确处理 Close 收尾、填充和错误返回。236 收藏 -
用 strconv.AppendFloat 生成浮点文本时,format 决定外形,prec 决定小数位或有效数字,bitSize 决定按 float32 还是 float64 的语义格式化;本文给出参数组合和缓冲区追加写法。300 收藏 -
sort.Find 适合在有序数据中同时处理匹配与未命中场景。本文用目标值与切片元素的三态比较说明如何定位相等元素的起点,解释 found、插入位置、重复值和比较方向的边界。365 收藏 -
用 slices.AppendSeq 将有限迭代器追加到已有切片,保留前缀并接回返回值。通过原创示例说明追加顺序、nil 与空序列、容量复用、共享别名和复制边界,以及大规模结果的收集取舍。473 收藏 -
Go bytes.FieldsFunc 接收 rune 判定函数,按 UTF-8 字符边界切分 []byte,并自动丢弃连续、首尾分隔符产生的空片段。本文用中文和混合符号示例讲清它与 Split、复制策略的差异。139 收藏 -
Go 需要把一个切片模式重复多次时,可以使用 slices.Repeat。本文说明它如何计算结果长度、如何处理 count 边界,以及它与 make、Clone 的区别。337 收藏 -
Go 切片截取后可能仍保留过大的 capacity。本文用 slices.Clip 收紧容量边界,并解释它与复制、三索引切片和后续 append 的区别。166 收藏 -
以一个短帧解析器为例,按空输入、短头、合法帧和长度边界选择精简种子,使用 F.Add 与性质断言发现错误,并区分日常种子回归、有界 fuzz 探索和失败样本最小化。499 收藏 -
用 Go testing 的 ns/op、B/op、allocs/op 识别分配热点,再用 AllocsPerRun 把测量范围缩到一个明确的函数调用。177 收藏 -
表格驱动和并行子测试中,把资源创建、t.Cleanup 注册和释放范围放在同一个子测试作用域,可以覆盖失败、跳过与独立运行场景;本文说明父子清理顺序、后注册先执行和共享资源边界。317 收藏 -
Go 子测试调用 t.Parallel 后,循环变量、临时资源和进程级状态都可能造成互相影响。本文用一个表格驱动测试拆开共享来源,给出输入绑定、资源隔离、清理边界和复查命令。295 收藏 -
Go 的 testing.T.Setenv 可以在单个测试生命周期内设置环境变量,并在测试结束时自动恢复。本文说明最小写法、子测试继承、并行限制和可替代的依赖注入方案。280 收藏 -
Go 并发子测试中的诊断信息容易和其他分支混在一起。本文围绕 testing.T.Log、Logf、Name 与 t.Parallel,说明日志可见时机、上下文归属和常见边界。193 收藏 -
Go 的 fs.Sub 可以把一个 fs.FS 中的子目录挂载成新的文件系统。本文用 embed.FS 说明目录参数、相对路径、错误处理,以及如何把子 FS 接入 fs.ReadFile 和模板加载。486 收藏 -
Go 用 os.Rename 替换同目录普通文件时,应先把数据写入临时文件,再关闭并将临时路径改名为目标路径。本文说明实现方式、失败清理和跨平台边界。285 收藏