Go语言技术文章
-
Golang · Go教程 | 2天前 | 标准库 · regexp · 字符串处理 · Go教程 · 命名捕获组 正则替换 Go regexp ExpandString regexp.Expand FindSubmatchIndex
用 Go regexp 的 Expand 和 FindSubmatchIndex 把匹配文本转换成结构化输出,覆盖命名与数字引用、字面美元符号、批量追加和未匹配分组边界。419 收藏 -
Go archive/tar 不应通过文件名后缀判断 Tar 链接。读取 Header.Typeflag 区分 TypeLink 与 TypeSymlink,再从 Header.Linkname 记录目标;链接条目没有可供 Reader.Read 消费的正文。459 收藏 -
Go regexp 的 Index 系列方法返回的是原字符串字节区间。本文用完整匹配和捕获组两个示例,说明如何安全切回原文、处理负数下标,并把中文文本的位置转换为字符序号。479 收藏 -
Go archive/tar 会自动处理 PAX 元数据头。读取时用 Header 获取已映射的标准字段,用 Header.PAXRecords 读取自定义扩展键,并在 Next、路径和类型转换处做好兼容处理。487 收藏 -
讲清 Go regexp.QuoteMeta 如何把用户输入转成字面匹配片段,并给出与固定正则组合、处理空输入和区分替换模板的实践方法。116 收藏 -
Go archive/zip 的 Writer.Create 遇到同名路径不会覆盖,而会追加重复条目。本文用路径规范化、seen map 和待写集合,分别实现拒绝重复与最后一份生效两种方案。435 收藏 -
Go net/url 中 PathEscape 与 QueryEscape 都是 URL 转义函数,但服务的语义边界不同。本文用特殊字符对比、URL 结构写入和解码检查,说明路径参数与查询参数的正确选择。398 收藏 -
Go archive/zip 读取 Zip 文件时,要分别关闭 OpenReader 返回的归档句柄和 File.Open 返回的条目流。本文用单条目函数、io.Copy 和关闭边界表说明提前返回、循环 defer、NewReader 与底层 ReaderAt 的资源责任。175 收藏 -
Go net/url 拼接路径时如何避免双斜杠?本文说明 URL.JoinPath、PathEscape、ResolveReference 的边界,并给出 Go 1.19+ 与旧版本的安全处理方案。358 收藏 -
Go读取ZIP时,不能把压缩包内的Name直接拼接到输出目录。本文用archive/zip、path.Clean和filepath.IsLocal组合校验相对路径,说明ErrInsecurePath、反斜杠、盘符与目录条目的处理边界。187 收藏 -
围绕Go net/url处理带未编码分号的查询串,说明ParseQuery如何保留有效参数和错误信息,为什么URL.Query会静默丢错,以及旧协议兼容分号时的安全拆分边界。353 收藏 -
Go 文件移动应优先使用 os.Rename;遇到跨文件系统错误时,在目标目录创建临时文件复制、Sync、关闭后再 Rename 提交,并正确处理源文件清理失败。260 收藏 -
本文从 tls.Config.RootCAs 的 nil、系统池副本和自定义 CertPool 三种语义出发,说明如何用来源元数据与 VerifiedChains 排查 Go HTTPS 连接实际使用的根证书。366 收藏 -
Go 用临时文件替换配置或缓存文件时,新文件默认权限可能与旧文件不同。本文演示如何读取旧文件的权限位、应用到临时文件,并处理 umask、平台和异常清理边界。452 收藏 -
Golang · Go教程 | 2天前 | go · https · Go crypto/tls按ServerName选择证书 tls.Config.GetCertificate ClientHelloInfo.ServerName Go SNI证书 Go多域名HTTPS
围绕 Go crypto/tls 的 ClientHelloInfo.ServerName,说明如何在 GetCertificate 中按 SNI 选择 tls.Certificate,处理未知域名、无 SNI 的默认回退,并区分 GetConfigForClient 的适用边界。230 收藏