Go语言技术文章
-
httptest.NewRequest 构造的是直接交给 handler 的入站测试请求,RemoteAddr 的固定值是稳定的默认哨兵,不代表真实客户端地址。本文说明它与 target、Host、Proto、TLS 的关系,并给出覆盖字段和改用 httptest.Server 的判断方式。179 收藏 -
Go testing/synctest 可以在隔离测试气泡内使用虚拟时钟,让定时任务测试不必等待真实秒数。本文用 time.AfterFunc 示例比较真实时间、注入时钟和 synctest,并说明 Test、Wait、Sleep 的边界。165 收藏 -
解释 synctest 的任务归属、channel 与 timer 关联边界,给出自包含通知测试,说明 Wait 的观察范围及启动、取消、退出应如何放进同一气泡。105 收藏 -
Go encoding/hex 的 Dumper 按 hexdump -C 形式把字节写入 io.Writer。若最后一行不足 16 字节,Close 会补齐空白、ASCII 右栏和换行;本文说明 Write、Close、错误处理以及与 hex.Dump 的选择边界。169 收藏 -
Go encoding/base32 默认会生成带等号的 Base32 字符串,WithPadding(base32.NoPadding) 则关闭填充。本文解释两种格式的差异,给出带等号、无填充和混合历史数据的解码写法,并说明如何用统一编码策略完成迁移。405 收藏 -
Golang · Go教程 | 2小时前 | 标准库 · 文件读取 · Go教程 · Go archive/zip bytes.Reader os.File io.ReaderAt zip.NewReader ZIP中央目录
Go 的 zip.NewReader 需要 io.ReaderAt 和整个 ZIP 的字节大小。本文解释 size 如何帮助定位文件末尾的中央目录,并分别给出 os.File、bytes.Reader 的正确写法,说明传读取长度、剩余长度和目录大小为什么会出错。473 收藏 -
使用 FileInfoHeader、SetMode、Modified 和 CreateHeader 保存 ZIP 条目名称、权限与修改时间,给出普通文件归档示例,并说明头所有权、关闭错误与跨平台恢复边界。487 收藏 -
从 Read、ReadAt、Size 和 io.EOF 的组合判断 Go io.SectionReader 是否读完整区间,覆盖顺序读取、固定偏移读取和四种边界情况。419 收藏 -
Go 文件写入成功不代表 Sync 和 Close 一定成功。本文按 Write、Sync、Close 的责任边界拆开说明错误处理顺序,并给出既能延迟关闭又不会覆盖前置错误的写法。101 收藏 -
Go os.File.Truncate 把文件扩大后,新增区域读取起来像是由零字节填充。本文从文件逻辑长度、零填充读取语义和稀疏文件的物理占用三个层面解释原因,并给出适合固定长度文件的 Go 写法。271 收藏 -
Go 生成 GIF 时,局部帧叠加和 Disposal 选择不当会让旧像素残留。本文解释 DisposalNone、DisposalBackground、DisposalPrevious 的区别,并给出编码与排查方法。145 收藏 -
解释 fs.Sub 的目录根约定与延迟访问错误,用内存文件系统示例区分路径合法性、目录属性和子树映射,并给出父目录读取与显式目录检查写法。198 收藏 -
使用 Go image/gif 的 DecodeAll 读取 GIF 全部帧,导出每帧 Delay、可读播放时长和 LoopCount 循环语义,并说明 Decode 与 DecodeAll 的迁移边界。456 收藏 -
Go 的 png.DecodeConfig 可以先读取 PNG 的颜色模型和宽高,再决定是否创建完整图像。本文说明尺寸准入、Reader 位置重置、内存 Reader 重放和两阶段错误处理。202 收藏 -
介绍 Go PNG EncoderBufferPool 的适配实现与批量编码接入,提供无池和有池基准示例,解释借还所有权、错误处理及分配下降与内存保留的区别。135 收藏