Go教程技术文章
-
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 收藏 -
bufio.Reader.UnreadRune 不是任意读取后的通用回退按钮,它只接受紧邻 ReadRune 的一次回退。本文从源码状态、ErrInvalidUnreadRune 触发条件和 UTF-8 解析示例说明严格配对规则。411 收藏 -
Go 中不要用文件后缀猜测打开对象的类型。本文用 os.File.Stat 获取 FileInfo,再通过 Mode 的 IsDir 和 IsRegular 判断目录、普通文件及其它类型,同时处理 Stat 错误和文件句柄关闭。411 收藏 -
Go slog 适合结构化记录请求和业务事件,但把请求对象直接写入日志很容易带出手机号、令牌或地址。本文用字段白名单、LogValuer 和审计分层,搭一套可检查、可回退的日志边界。410 收藏 -
围绕 Go os.Open 读取配置的场景,说明如何在打开成功后立即绑定 defer Close,处理读取与解码错误,并避免循环中的文件句柄延迟释放。410 收藏 -
filepath.EvalSymlinks 会逐层解析路径中的符号链接并清理结果。本文给出最小用法、多层相对链接示例、断链和链接环错误处理,以及把最终路径限制在受信根目录内的检查方法。410 收藏 -
Go 1.24 及以上通过 http.Transport.Protocols 限定客户端使用 HTTP/1、HTTP/2 或明文 h2c,并用 Response.Proto 验证实际协商结果。410 收藏 -
Go billy 的 memfs 可以通过 Filesystem.Chroot 把 workspace 变成相对路径工作根。本文用最小 Go 示例说明如何创建、读写文件,并处理不存在目录、越界路径和 v5/v6 导入差异。410 收藏