Go语言技术文章
-
用 Go 1.23 新增的 os.CopyFS 把 embed.FS 复制到本地目录,说明目标目录创建、已有文件冲突、fs.ErrExist 判断和权限边界。299 收藏 -
用 Go io.Copy 处理上传、代理和文件转存时,先限制输入边界,再利用 ReaderFrom 的快路径,最后用可复现基准确认吞吐与内存变化。409 收藏 -
go/ast.Preorder 返回一个按深度优先顺序遍历语法树的迭代器。本文从源码扫描器的高压场景出发,拆解节点顺序、break 提前停止和解析错误的边界,并给出可复查的实现方式。148 收藏 -
用 testing.T.Context 把测试超时信号传给后台 goroutine,并配合 Cleanup 等待资源退出,避免测试结束后仍有后台任务运行。420 收藏 -
Go 的 regexp.Expand 和 ExpandString 可以把正则捕获结果写入模板。本文从命名捕获组、模板边界和字节切片复用出发,给出可验收的替换写法,并说明空捕获组与并发使用时的注意点。402 收藏 -
time.ParseDuration 能解析带单位的时长,但 Duration 本质是 int64 纳秒数。本文从配置输入、解析错误和范围校验三个环节说明如何避免极大值溢出,并给出安全回退写法。194 收藏 -
Go 里只拆一次字符串时优先考虑 strings.Cut;需要保留全部片段或处理空字段时使用 strings.Split。本文用请求头和配置值的例子说明两者的返回值、边界与选择规则。492 收藏 -
text/template 默认会把缺失 map 键静默变成空值。本文用 missingkey=error 配合模板执行,定位字段拼写错误发生的阶段,并给出可运行的测试验收方法。286 收藏 -
用 Go net/url 的 URL.JoinPath 拼接接口路径,厘清多斜杠、./、../ 与 PathEscape 的边界,并通过可运行示例验收最终请求地址。160 收藏 -
Golang · Go问答 | 1星期前 | HTTP · go · 性能排查 · 连接管理 · Go net/http 连接泄漏 ConnState StateNew StateActive StateClosed
Go 的 net/http.Server.ConnState 能把连接状态变化暴露出来。本文用 StateNew、StateActive、StateIdle 与 StateClosed 计数,区分正常长连接、慢请求和连接泄漏,并给出可运行的核对方法。211 收藏 -
Golang · Go教程 | 1星期前 | 依赖管理 · 调试 · Go教程 · 工程实践 · 构建信息 · Go 依赖版本 debug.BuildInfo debug/buildinfo 发布验收
线上只拿到一个 Go 二进制时,debug.BuildInfo 可以帮助你还原构建工具链、主模块、依赖模块与 VCS 设置。本文用 ReadFile 和 ReadBuildInfo 组成一套发布验收流程,并说明模块模式、裁剪信息与脏工作区的边界。200 收藏 -
用 Go flag.FlagSet 处理子命令参数时,未知参数、缺少参数值和 -h 不能混在一起判断。本文用 ContinueOnError、Usage 和 Parse 的返回结果拆开这三类分支。275 收藏 -
用 Go regexp.Regexp.FindReaderIndex 在 io.RuneReader 上定位流式文本匹配,解释返回值为何是字节区间、UTF-8 字符如何换算,以及为什么方法可能继续向后读取。120 收藏 -
用 base64.Encoding.Strict 对比普通解码,验证末尾填充位、CorruptInputError 和 DecodeString 的错误边界,给出可复现的 Go 示例。252 收藏 -
Go 1.27 允许结构体字面量直接使用嵌入结构体提升字段作为键。本文用 Gopher 和 Habitat 示例说明字段选择器规则、与旧写法的兼容边界,以及如何用 go.mod 和 go test 做编译检查。362 收藏