Go语言技术文章
-
go.mod 的 toolchain 只建议使用更高的首选工具链,不会把更新的本机 Go 降级。本文按 go.work、GOTOOLCHAIN、版本名称与下载条件排查未切换原因,并给出可复用的诊断命令。118 收藏 -
Go fuzzing 找到失败输入后,如何把大而难读的样本缩成稳定的回归语料?本文说明最小化参数、失败语料目录、生成语料缓存和修复后的 go test 回归流程。118 收藏 -
从 200、206 和 416 的响应症状出发,解释 Go net/http ServeContent 如何依赖 io.ReadSeeker 处理 Range 请求、获取内容长度和定位读取位置,并给出文件、自定义 Reader 与并发排障示例。118 收藏 -
Go 1.24 引入的 testing.B.Loop 可以把基准测试的一次性初始化和清理放到计时边界之外。本文用固定输入的哈希基准说明正确写法、b.N 迁移边界、编译器优化注意事项和 go test 检查命令。117 收藏 -
Go Excelize 写入大量工作表行时,可以用 NewStreamWriter 获取流式写入器,按递增行号调用 SetRow,最后 Flush 后再保存文件。本文结合实际使用说明内存边界、收尾顺序和不能混用普通写入 API 的限制。117 收藏 -
用 Koanf env/v2 将带应用前缀的环境变量映射成嵌套配置键,说明双下划线、允许键集合、值转换和覆盖顺序,并给出受限配置示例。116 收藏 -
Go httptrace 可以把 HTTP 客户端请求拆成 DNS、连接、TLS 和响应等阶段。本文围绕 DNSStart 与 DNSDone 写出一次请求的 DNS 耗时记录,并说明连接复用、DNS 失败和并发回调时的边界。116 收藏 -
Go html/template 用 define 注册布局、template 调用组件、block 提供默认区域。本文给出独立页面装配示例,说明克隆集合、数据传递、同名覆盖与空页面的排查方法。116 收藏 -
解释 t.Parallel 与进程级环境变量的冲突边界,给出显式配置传递、独立测试资源和 exec.Cmd.Env 子进程隔离方案。115 收藏 -
Go 的 net/url 会把路径解码后放入 Path,RawPath 只是可选的编码提示。本文用转义斜杠示例说明 EscapedPath 何时保留 RawPath,以及手动构造 URL 时如何避免提示失效。115 收藏 -
Go token.FileSet 把每个源码文件映射到一个包含 EOF 的位置区间。本文解释 AddFile 的 base、size 与 FileSet.Base 关系,说明手工复用 base、混用本地 offset 时为什么会出现 panic 或位置错位,并给出多文件位置分配与排查写法。114 收藏 -
Go 的 json.Encoder 默认会把 <、>、& 写成 Unicode 转义。本文按 JSON 的实际消费边界比较默认策略与 SetEscapeHTML(false),说明 HTML 嵌入、API、配置文件和日志场景应该怎样取舍。114 收藏 -
embed.FS.Open 接收的是 io/fs 规则下的逻辑相对路径,直接传入带 ..、绝对路径或反斜杠路径会失败。本文按故障时间线解释根因,并给出可复用的清理与边界处理方式。113 收藏 -
围绕 Go net/url 的 Userinfo 展开,说明如何用 User 与 UserPassword 构造包含 @、冒号、斜杠、空格和中文的用户信息,并用 String 生成完整 URL、Parse 后取回字段,同时区分路径和查询参数的转义边界。113 收藏 -
Go 的 encoding/csv Writer 会按字段内容自动决定是否加引号,但不会默认把空字符串写成双引号。本文解释 Comma、UseCRLF、Flush、Error 与全引用编码方案,解决批量导出时的格式兼容问题。112 收藏