Go语言技术文章
-
围绕协议兼容、CRC32C 与流式更新,说明 Go hash/crc32 中 IEEE、Castagnoli、Koopman 和自定义校验表的选择方法。204 收藏 -
介绍Go image/color在RGBA与NRGBA间转换的模型写法,解释预乘Alpha、RGBA方法、整图处理、量化误差及完全透明颜色的信息丢失。359 收藏 -
Go 计算文件 SHA-512 摘要时,优先用 crypto/sha512.New 配合 io.Copy 流式读取,再将 64 字节结果编码成 128 位十六进制文本。本文给出完整实现、摘要比较方式和文件变化、空文件与算法选择的边界。128 收藏 -
Go image/jpeg 的 Options.Quality 取值范围是 1 到 100,默认值为 75。本文按缩略图、网页上传和归档等用途给出质量参数的选择起点,并说明 Encode 的传参、体积与细节的权衡,以及 PNG、透明图和反复编辑场景的边界。186 收藏 -
Go image/png 通过 png.Encoder 的 CompressionLevel 控制编码策略,支持默认、无压缩、最快和最高压缩四种选择。本文用完整示例说明怎样接入 io.Writer、怎样处理编码错误,以及为什么 BufferPool 不能替代压缩级别设置。490 收藏 -
介绍Go archive/tar写入目录、文件模式和大小的方法,提供空目录与脚本示例,说明FileInfoHeader权限转换、关闭错误和失败回退。254 收藏 -
Go slog.NewLogLogger 可以把 slog.Handler 接到旧式 log.Logger 接口,让暂时不能改造的 Printf、Println 和 Output 调用进入新的结构化日志链路。本文说明桥接关系、级别选择、参数边界、Handler 配置和上线检查。433 收藏 -
Go io.LimitReader 可以把任意 io.Reader 包装成有字节上限的流。本文用一个小型文本导入工具说明如何消费受限输入、判断是否触达上限、处理底层错误,并比较它与 io.CopyN、http.MaxBytesReader 的使用边界。145 收藏 -
Go iter.Pull2 把 push 风格的 iter.Seq2 转成 next 和 stop 两个函数。本文用提前匹配、错误返回和完整消费三个场景说明为什么要 defer stop,并梳理重复 Stop、零值返回和并发调用边界。172 收藏 -
Go bytes.TrimSpace 会按 Unicode 空白规则去掉字节切片首尾的空白,并保留中间内容。本文说明最小写法、空结果、返回子切片的共享存储边界,以及与 bytes.Trim 等函数的选择。201 收藏 -
Go sort.Find 用二分查找返回有序数据中第一个满足比较条件的位置,并通过 found 区分是否精确命中。本文从三态比较函数、重复值、未找到边界和结构体切片几个场景说明怎样写对。187 收藏 -
Go archive/zip.File.OpenRaw 返回 ZIP 条目中未解压的原始数据。本文区分 Open 与 OpenRaw,说明如何根据压缩方法读取原始字节,并介绍原样复制条目时使用 Writer.Copy 的边界。112 收藏 -
Go os.CreateTemp 可以用随机文件名安全创建临时文件,但关闭文件和删除路径仍由调用方负责。本文说明目录参数、星号模式、扩展名保留、错误处理,以及单文件和临时目录的选择。365 收藏 -
Go regexp.Compile 会在解析阶段返回无效正则的错误。本文用一个规则加载器说明如何提前编译、保留错误上下文,并区分 Compile、MustCompile 与后续匹配校验。153 收藏 -
Go 的 url.Values 用 map[string][]string 表示查询参数:Add 追加同名值,Set 替换全部旧值,Get 只取第一个,Encode 按键排序并保留每个键的值顺序。本文用请求、签名和边界检查示例说明怎样稳定输出重复查询参数。425 收藏