Go语言技术文章
-
用日报写入示例说明Go os.File.Sync的职责,区分缓冲写入、Flush、Sync和Close,保留阶段错误并说明批次确认、失败残留及持久化边界。123 收藏 -
Go filepath.FromSlash 适合把配置、归档或协议中的斜杠路径转换为目标操作系统的文件路径。本文说明输入边界、与 ToSlash 和 io/fs 的分工,以及不能替代的清理和安全检查。350 收藏 -
用 Go crypto/rand.Read 为令牌填充固定长度的安全随机字节,解释 32 字节预算、十六进制与 Base64 编码长度、错误边界和上线前应观察的生成指标。110 收藏 -
Go encoding/base64 中,RawURLEncoding 同时使用 URL 安全字母表并省略等号填充。本文对比三种编码器,给出编码、解码和兼容带填充输入的写法,并说明跨语言互操作时的边界。499 收藏 -
用 Go net/http Cookie 配置 SameSite 与 MaxAge,区分跨站发送策略、存活秒数和删除语义。141 收藏 -
Go 1.27 的 crypto/x509 已支持 ML-DSA 私钥、公钥和签名。本文从 PEM/DER 解析开始,说明怎样读取 *x509.Certificate、判断 ML-DSA-44/65/87,并梳理旧版本、FIPS 模式和解析与验证的边界。312 收藏 -
Go errors.As 可以沿着 errors.Join 形成的错误树查找目标类型,并把首个匹配值写入目标指针。本文用可执行的类型化错误示例说明组合错误的遍历顺序、未命中处理和参数边界。465 收藏 -
Go strconv.CanBackquote 用于判断字符串能否原样放入单行反引号字符串。本文解释它会拒绝哪些字符,并给出失败时回退到 strconv.Quote 的实用写法。262 收藏 -
Go encoding/csv 的 Write 会先把记录写入内部缓冲,Flush 才把缓冲交给底层 io.Writer。本文说明 Writer.Error 为什么必须在 Flush 后检查,怎样区分 Write 的即时错误、Flush 的延迟错误和 WriteAll 的返回值。485 收藏 -
以临时文件辅助函数和并行子测试说明testing.TB.Cleanup的资源归属、后登记先清理规则及与defer、TempDir的区别,避免提前关闭与重复释放。501 收藏 -
Go expvar 可以把自定义运行时变量以 JSON 形式暴露出来。本文用 NewInt、NewMap 和 Publish 说明怎样注册指标、挂载 Handler、处理名称冲突,并控制 /debug/vars 的生产暴露边界。462 收藏 -
Go os.Root.Chown 只负责在 Root 范围内调用系统的属主修改能力,返回权限错误通常与当前进程的 uid/gid 权限、平台支持、文件系统策略或符号链接语义有关。本文给出最小调用、错误分类和 Chown/Lchown 的选择方式。240 收藏 -
以资源清单页说明embed.FS如何作为ParseFS模板来源,区分嵌入路径、解析范围与define模板名,并处理片段未定义、工作目录和重新构建问题。419 收藏 -
Go image/draw 的偏移绘制关键在目标矩形 r.Min 与源点 sp 的对齐。本文用最小示例说明 image.Rect、源图像边界、越界裁剪以及 draw.Src 和 draw.Over 的选择。101 收藏 -
Go html/template 的 missingkey 只控制 map 缺失键在执行阶段的行为。本文用一个可复用示例说明 default、zero、error 的差别,并区分结构体字段错误、Execute 返回值和生产场景的选择。384 收藏