Go教程技术文章
-
Go math/big.Int.QuoRem 对负数采用向零截断的 T-除法。本文用 x=y*q+r 验算商和余数,并对比 DivMod 的非负余数语义,补充大整数对象复用和除零处理要点。396 收藏 -
Go 的 math/big.Rat.SetString 会把合法十进制解析为精确有理数,但显示精度与内部精度不是一回事。本文用 RatString、Denom、FloatPrec 和 FloatString 分清四种检查方式。343 收藏 -
Go crypto/subtle 的 ConstantTimeSelect 用 0/1 条件在两个整数之间选择结果。本文说明 v 的合法范围、如何生成选择值、参数求值边界和测试方法。121 收藏 -
crypto/rand.Read 的契约是填满目标切片。本文说明如何处理长度判断、自定义 io.Reader 的短读、io.ReadFull 以及固定长度随机令牌的业务边界。143 收藏 -
Go draw.DrawMask 使用遮罩时边缘颜色变淡,通常是 mask alpha 参与 draw.Over 合成造成的。本文说明 DrawMask 坐标对齐、Over 与 Src 的区别,以及 RGBA/NRGBA 颜色模型的排查方法。201 收藏 -
解释 Go color.NRGBA 的非预乘存储、RGBA() 的 16 位预乘返回值,以及 draw.Over 中 Alpha 如何参与混合,附固定输入的换算示例和常见边界。450 收藏 -
Go 先用 image.DecodeConfig 读取图片格式、宽高和颜色模型,再按像素预算决定是否调用 Decode,适合上传校验和内存保护。307 收藏 -
Go zip.NewReader 不能直接接收普通 io.Reader。本文用 bytes.Reader 和临时文件说明如何提供 ReaderAt、准确 size,并正确处理 ZIP 成员资源。444 收藏 -
Go archive/zip 中 FileHeader.Method 不是任意压缩等级。本文解释 Store、Deflate、ErrAlgorithm、CreateHeader 与 CreateRaw 的边界,并给出写入错误、Close 收尾和读回校验的排查方法。358 收藏 -
Go archive/zip.File.Open 返回的是 io.ReadCloser。本文区分条目读取器与 ZIP 归档读取器的关闭责任,并给出单条函数、批量遍历和错误处理的安全写法。397 收藏