Go语言技术文章
-
Go 的 image/png 通过 CompressionLevel 提供默认、无压缩、最快和最佳压缩四种选择。本文用 Encoder 配置 PNG 编码级别,说明文件大小、编码开销和 BufferPool 之间的边界。257 收藏 -
Go archive/zip 的 FileHeader.CreatorVersion 不是单纯的版本号,其中包含 ZIP 条目创建平台和版本信息。本文给出拆解高低字节、读取常见平台标识以及结合 ExternalAttrs 判断权限的实用写法。481 收藏 -
Go archive/tar 的 Header.Xattrs 会被写成 PAX 的 SCHILY.xattr.* 记录。本文用一个紧凑示例说明怎样显式选择 PAX、怎样处理 PAXRecords 覆盖关系,以及键名和资源关闭的边界。264 收藏 -
io/fs 使用统一斜杠路径,而本地文件系统使用操作系统分隔符。本文用 filepath.Localize 完成转换,说明 ValidPath 前置条件、Windows 兼容错误与文件操作边界。405 收藏 -
围绕 Go io.WriterTo 与 io.Copy 的源端复制路径,说明如何实现 WriteTo、如何处理短写和错误,以及包装类型和 ReaderFrom 会怎样改变快路径选择。418 收藏 -
Go io.SectionReader 的 ReadAt 使用 section 内相对偏移,不会推进 Read 使用的当前读取位置。本文说明 base、当前偏移和 limit 的边界,给出定位读取、短读和 EOF 的处理方式。412 收藏 -
用一次 os.OpenRoot 复用目录根对象,逐个读取直接子文件并及时关闭,结合有界读取、逐项错误与根关闭错误,说明多文件批处理的资源归属和恢复边界。164 收藏 -
Go 1.23 起可以直接用 os.CopyFS 把 fs.FS 的目录树复制到磁盘。本文从 os.DirFS 和 fs.Sub 的根路径开始,给出嵌入文件与本地目录示例,并排查已存在文件、路径和权限错误。444 收藏 -
Go 1.24 起可以用 os.Root 把文件操作约束在指定目录树内。本文用一个上传目录示例说明 OpenRoot、Root.Open、Root.OpenFile 的相对路径用法,以及软链接、关闭和平台边界。264 收藏 -
Go html/template 会根据动作所在的 HTML 上下文自动转义 URL。本文区分普通 string、template.URL 与 #ZgotmplZ,说明如何识别 URL 边界并安全地建立受信任类型。352 收藏 -
Go 的 crypto/ecdsa Sign 不会把摘要长度简单地强制要求为曲线阶长度;摘要过长时会按曲线阶位数截断。本文用一个小型签名器说明如何显式检查、调用 Sign 并配套验证。319 收藏 -
说明 Go 1.27 中 tls.MLKEM1024 的配置方式、CurvePreferences 的集合语义,以及回退候选和握手状态读取方法,区分支持配置与实际协商结果。326 收藏 -
Go crypto/x509 解析证书后,可从 Certificate.Extensions 按 OID 查找自定义扩展,再用 encoding/asn1 解码 pkix.Extension.Value。本文区分 Extensions 与 ExtraExtensions,说明 DER 边界、关键扩展和常见找不到原因。437 收藏 -
Go 1.27 将标准库 Unicode 数据升级到 17.0.0。本文用 unicode.Version、分类表和 UTF-8 校验搭出兼容处理方案,并说明旧工具链、字体与终端显示之间的边界。436 收藏 -
说明 Go 1.27 在 macOS 上使用 SSL_CERT_FILE 和 SSL_CERT_DIR 的规则,结合证书来源、进程环境、证书池缓存与客户端示例,解释生效条件、错误判断和恢复方法。230 收藏