Go语言技术文章
-
Go 的 t.Run 会形成带斜杠的测试层级,使用 go test -run 配合顶层测试名和子测试名即可只执行指定场景;本文还说明未锚定正则、精确匹配和常见误区。469 收藏 -
用 Go 标准库 debug/elf 打开 ELF 文件,遍历 File.Sections 读取节区名称、类型、偏移和大小,并说明 Section、Data、Open 之间的选择与特殊节区边界。267 收藏 -
Go查询参数应通过url.Values保存原始值并编码,再写入RawQuery。本文结合搜索链接说明已有参数、Set与Add、空值和重复编码,并区分查询编码、HTML转义与目标地址信任。143 收藏 -
Go 项目要同时支持 Linux、macOS 和 Windows 时,不要手写斜杠或反斜杠。本文用 filepath.Join、ToSlash、FromSlash 和 IsLocal 说明本地路径拼接、格式转换与输入边界的实用写法。145 收藏 -
用 encoding/binary 的 BigEndian 统一读写固定结构,说明结构体字段布局、binary.Read 与 binary.Write 的用法,以及短数据和字节序不一致时的处理边界。213 收藏 -
Go HTTP 服务端怎样把 gzip 放到响应边界、正确处理 Content-Encoding 和 Vary,并在流式输出时同时刷新 gzip.Writer 与 HTTP 输出层。352 收藏 -
用 Go archive/tar 和 filepath.WalkDir 打包目录,讲清 FileInfoHeader 保留文件模式、相对路径、符号链接与关闭顺序。391 收藏 -
Go ZIP指定文件读取可通过完整条目名精确匹配完成。本文给出限制解压后大小、拒绝重名并关闭两层资源的写法,说明读取错误、内存归档与完整性边界。479 收藏 -
用 Go embed.FS 把模板目录编译进二进制,再通过 html/template 的 ParseFS 读取渲染,适合希望单文件交付的 Go 服务。122 收藏 -
Go fs.WalkDir 传给回调的是逻辑路径和目录项,按文件名筛选时应先用 path.Base 取出最后一段,再用 path.Match 做完整匹配,并分别处理模式错误、访问错误和目录剪枝。486 收藏 -
Go 的 os.DirFS 可以把 fs.FS 的相对路径映射到指定目录,但它不是 chroot,也不会阻止目录内符号链接越出根目录。本文用 ReadFile、WalkDir 和 Go 1.24+ 的 os.OpenRoot 区分两种边界。348 收藏 -
encoding/xml 默认按 UTF-8 解析 XML。本文用 CharsetReader 按声明分派 GBK、Windows-1252 和 Shift_JIS 转换器,把输入接成 UTF-8 Reader,并区分未知字符集、转换失败、XML 语法错误和业务校验错误。102 收藏 -
Go FlagSet 可以为每个子命令建立独立参数集合。本文用标准库示例说明如何切分 os.Args、分别调用 Parse、处理错误与位置参数,并总结公共参数的组织边界。110 收藏 -
用 Go 标准库 container/list 和 map 实现一个可运行的 LRU 缓存,说明访问命中、队首移动、更新和队尾淘汰之间的关系,并补充容量与并发边界。401 收藏 -
用 Go 的 container/heap 实现优先级任务队列,讲清 heap.Interface、最小堆方向、任务入队出队、优先级更新和空队列边界。146 收藏