Go语言技术文章
-
Go 的 http.Request.Trailer 不是普通请求头的即时副本。本文从读取时序出发,说明服务端为什么要等 Body 返回 EOF 后再取尾部字段,并给出声明字段、读取请求体和处理空值的实用写法。375 收藏 -
Go 的 math/bits.Rem64 用 hi、lo 两个 uint64 表示双字无符号被除数并返回余数。本文说明参数含义、零除数边界,以及 Rem64 与 Div64 在商溢出处理上的区别。417 收藏 -
Go path.Dir 适合处理 URL、对象存储键等正斜杠分隔路径。本文说明普通路径、末尾斜杠、根路径和空路径的返回边界,并区分 path.Dir 与 filepath.Dir 的生产使用场景。344 收藏 -
Go netip.Prefix.IsValid 同时判断地址是否已初始化、前缀位数是否符合 IPv4 或 IPv6 范围。本文用一个小工具区分零 Prefix、0.0.0.0/0、非法位数和有效但未掩码的前缀。371 收藏 -
Go 的 path.Clean 适合规范化 URL 这类正斜杠路径:它按词法规则合并斜杠、移除点段并处理 ..,但不检查文件是否存在,也不替代权限校验。168 收藏 -
Go filepath.Abs 以当前工作目录为基准转换相对路径。本文用配置读取示例说明错误处理、固定基准目录,以及文件存在性、符号链接和跨平台路径的职责边界。297 收藏 -
Go 中不要用文件后缀猜测打开对象的类型。本文用 os.File.Stat 获取 FileInfo,再通过 Mode 的 IsDir 和 IsRegular 判断目录、普通文件及其它类型,同时处理 Stat 错误和文件句柄关闭。411 收藏 -
本文围绕 Go embed.FS 讲清静态资源目录、//go:embed 包级声明、隐藏文件规则,以及如何通过 http.FS、StripPrefix 和 FileServer 接入 HTTP 服务。177 收藏 -
Go fs.Sub 把一个 fs.FS 映射为指定子目录的文件系统视图。本文用 os.DirFS 和嵌入式文件系统说明相对路径、嵌套 Sub、无效路径与不存在目录的边界,并提醒它不是 chroot 级安全隔离。202 收藏 -
fs.Glob 在指定 fs.FS 内按 path.Match 模式查找路径。本文用模板发现示例说明相对根、斜杠、通配符层级、空结果和模式错误,并解释为何它不能承担读取权限或完整性检查。257 收藏 -
本文用 Go io.Pipe 连接生产者与消费者,说明同步无缓冲读写、正常关闭、CloseWithError 错误传播、读端提前退出和适用边界。100 收藏 -
Go io.ReaderFrom 是 Writer 端参与流式复制的接口。本文从 ReadFrom 的 EOF、字节计数和短写契约讲起,说明 io.Copy 为什么优先选源端 WriterTo,再回退到目标端 ReaderFrom,以及 CopyBuffer 和性能判断中的常见误区。323 收藏 -
Go math/bits.Div32 把两个 uint32 组成的双字被除数除以 uint32,并返回商和余数。本文拆开说明 y==0 与 y<=hi 的 panic 条件,给出安全参数检查和边界判断,避免把商溢出误认为普通除法结果。267 收藏 -
用 Go testing/fstest.MapFS 构造内存文件,演示 ReadFile 读取指定路径,并用 errors.Is 区分非法路径、文件不存在和正常结果。253 收藏 -
Go testing.T.Errorf 等价于记录格式化错误日志后调用 Fail:当前测试会被标记为失败,但函数仍会继续执行。本文用表格测试说明如何保留多个失败项,并对比 Fatalf 的立即停止边界、前置条件判断和并发调用注意事项。280 收藏