Go教程技术文章
-
bufio.Reader.ReadLine 遇到超长文本时会通过 isPrefix 返回多个片段。本文用一个可复用的读取函数说明如何拼接软换行、处理 EOF 与错误,并解释返回切片的生命周期。412 收藏 -
Go JSON 解码后如何保留未知字段?比较 struct、动态 map 与 RawMessage,给出固定字段加扩展容器的完整写法,并解释合并冲突、数字精度、null 与嵌套字段的处理边界。412 收藏 -
用 archive/zip 的 FileInfoHeader 和 CreateHeader 保留 ZIP 条目的 Unix 权限、目录类型与可执行位,并说明读取复核、路径安全和跨平台边界。412 收藏 -
Go 使用 gopkg.in/yaml.v3 读取配置时,应先把默认值写入结构体,再解码 YAML;这样文件中出现的字段会覆盖默认值,省略字段仍保留默认策略。本文还说明显式零值、未知键和严格解码的处理边界。412 收藏 -
用 io.LimitReader、max+1 探测和 http.MaxBytesReader 为 Go ReadAll 设置输入大小上限,区分截断、超限和读取错误。412 收藏 -
filepath.Base 会先去掉末尾路径分隔符,再提取最后一个元素;空路径返回点号,只有分隔符的路径返回单个分隔符。本文用边界表和可复用代码说明这些结果,并区分 filepath 与 path 的使用场景。412 收藏 -
Go io.SectionReader 的 ReadAt 使用 section 内相对偏移,不会推进 Read 使用的当前读取位置。本文说明 base、当前偏移和 limit 的边界,给出定位读取、短读和 EOF 的处理方式。412 收藏 -
Go archive/zip 的 Reader.Open 可以按 fs.FS 的路径语义直接打开 ZIP 成员。本文说明如何使用斜杠路径读取指定文件、关闭返回的 fs.File,并处理成员不存在、前导斜杠、父目录和遍历元数据等边界。412 收藏 -
Gock 可以为同一个 HTTP 方法和路径注册多条模拟规则,并按 FIFO 顺序消费不同响应。本文用 Times(1) 组合状态码与 JSON,说明连续请求、规则耗尽、未匹配判断和清理边界。412 收藏 -
讲清 os.File.Truncate 改短文件时的文件长度、当前偏移量和落盘检查,给出可复现的配置文件更新写法。411 收藏 -
用 Go json.Decoder 读取连续 JSON 对象时,区分正常 io.EOF、语法损坏、截断输入和类型错误,并用 RawMessage 处理多态载荷。411 收藏 -
讲清 Go testing.B.ReportMetric 的参数、单位、b.N 归一化、b.Elapsed 计时指标、并行基准汇总和内置指标覆盖边界,配合可直接改写的 Go 示例记录自定义 benchmark 指标。411 收藏 -
Go 使用 json.Decoder.Token 可以按对象边界逐项读取 JSON。本文给出带深度上限的递归实现,说明数组、标量、EOF、语法错误和资源边界。411 收藏 -
固定正则表达式不要在每次请求中重复编译:本文用 Go regexp 说明初始化复用、并发读取、动态表达式缓存和错误边界。411 收藏 -
Go bufio.Reader.ReadLine 返回 isPrefix 并不表示读取失败,而是说明当前 line 只是长行的一段。本文用原创 Go 示例说明如何拼接片段、处理 EOF 与 CRLF,并封装单行读取接口。411 收藏